/**
 */
package BlipTGG.Rules;

import BlipLanguage.BlipApplication;
import BlipLanguage.BlipLanguageFactory;
import BlipLanguage.BlipModel;
import BlipLanguage.BlipModelAttribute;

import BlipTGG.BlipTGGFactory;
import BlipTGG.MApplicationToApplication;
import BlipTGG.MModelAttributeToModelAttribute;
import BlipTGG.MModelToModel;

import MocaTree.Attribute;
import MocaTree.MocaTreeFactory;
import MocaTree.Node;

import TGGLanguage.csp.*;

import TGGRuntime.AbstractRule;
import TGGRuntime.Edge;
import TGGRuntime.IsApplicableMatch;
import TGGRuntime.IsApplicableRuleResult;
import TGGRuntime.IsAppropriateRuleResult;
import TGGRuntime.Match;
import TGGRuntime.PerformRuleResult;
import TGGRuntime.TGGRuntimeFactory;

import csp.constraints.*;

import de.upb.tools.sdm.*;

import java.util.*;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EOperation;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>MModel To Model Rule</b></em>'.
 * <!-- end-user-doc -->
 *
 *
 * @see BlipTGG.Rules.RulesPackage#getMModelToModelRule()
 * @model
 * @generated
 */
public interface MModelToModelRule extends EObject, AbstractRule {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<activities:Activity xmi:version=\"2.0\" xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:TGGLanguage=\"http://www.moflon.org.TGGLanguage\" xmlns:activities=\"http://www.moflon.org.SDMLanguage.activities\" xmlns:csp=\"http://www.moflon.org.TGGLanguage.csp\" xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\" xmlns:expressions=\"http://www.moflon.org.SDMLanguage.expressions\" xmlns:patternExpressions=\"http://www.moflon.org.SDMLanguage.patterns.patternExpressions\">\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"collect translated elements\" outgoing=\"//@ownedActivityEdge.3\" incoming=\"//@ownedActivityEdge.1\">\r\n    <storyPattern>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.0 //@ownedActivityNode.0/@storyPattern/@linkVariable.1 //@ownedActivityNode.0/@storyPattern/@linkVariable.2 //@ownedActivityNode.0/@storyPattern/@linkVariable.3\" bindingOperator=\"CREATE\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//PerformRuleResult\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//RuleResult/success\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"true\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable name=\"blipModelNode\" incomingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Node\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"nameAttr\" incomingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.1\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Attribute\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"mModelToModel\" incomingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.2\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.BlipTGG#//MModelToModel\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"blipModel\" incomingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.3\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/resource/BlipLanguage/model/BlipLanguage.ecore#//BlipModel\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"translatedElements\" target=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.1\" source=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"translatedElements\" target=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.2\" source=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdLinkElements\" target=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.3\" source=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdElements\" target=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.4\" source=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"perform transformation\" outgoing=\"//@ownedActivityEdge.1\" incoming=\"//@ownedActivityEdge.0\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"MModelToModelRule\" cspSpec=\"&#xD;&#xA;&#x9;&#x9;eq(nameAttr.value, blipModel.name)&#xD;&#xA;&#x9;\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"applicationNode\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Node\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"isApplicableMatch.getObject(&quot;applicationNode&quot;)\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"blipModelNode\" incomingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Node\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"isApplicableMatch.getObject(&quot;blipModelNode&quot;)\"/>\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"expressions:ComparisonExpression\" operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;Model&quot;\"/>\r\n            <leftExpression xsi:type=\"patternExpressions:AttributeValueExpression\">\r\n              <attribute href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//TreeElement/name\"/>\r\n            </leftExpression>\r\n          </constraintExpression>\r\n        </constraint>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"nameAttr\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Attribute\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"isApplicableMatch.getObject(&quot;nameAttr&quot;)\"/>\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"expressions:ComparisonExpression\" operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;name&quot;\"/>\r\n            <leftExpression xsi:type=\"patternExpressions:AttributeValueExpression\">\r\n              <attribute href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//TreeElement/name\"/>\r\n            </leftExpression>\r\n          </constraintExpression>\r\n        </constraint>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"mApplicationToApplication\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.BlipTGG#//MApplicationToApplication\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"isApplicableMatch.getObject(&quot;mApplicationToApplication&quot;)\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"mModelToModel\" outgoingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.0 //@ownedActivityNode.1/@storyPattern/@linkVariable.1\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.BlipTGG#//MModelToModel\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"application\" outgoingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.2\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/resource/BlipLanguage/model/BlipLanguage.ecore#//BlipApplication\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"isApplicableMatch.getObject(&quot;application&quot;)\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"blipModel\" incomingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.1 //@ownedActivityNode.1/@storyPattern/@linkVariable.2\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/resource/BlipLanguage/model/BlipLanguage.ecore#//BlipModel\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"platform:/resource/BlipLanguage/model/BlipLanguage.ecore#//BlipModel/name\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"(java.lang.String)csp.getAttributeVariable(&quot;blipModel&quot;,&quot;name&quot;).getValue()\"/>\r\n        </attributeAssignment>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"csp\" incomingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.3\" bindingSemantics=\"OPTIONAL\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGLanguage#//csp/CSP\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"this\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"isApplicableMatch.getObject(&quot;this&quot;)\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"isApplicableMatch\" outgoingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.3\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsApplicableMatch\"/>\r\n      </objectVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"source\" target=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.1\" source=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.4\" bindingOperator=\"CREATE\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      </linkVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"target\" target=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.6\" source=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.4\" bindingOperator=\"CREATE\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      </linkVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"models\" target=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.6\" source=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.5\" bindingOperator=\"CREATE\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n      </linkVariable>\r\n      <linkVariable name=\"attributeInfo\" target=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.7\" source=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.9\"/>\r\n      <correspondence href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      <source href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      <csp>\r\n        <constraints variables=\"//@ownedActivityNode.1/@storyPattern/@csp/@variables.0 //@ownedActivityNode.1/@storyPattern/@csp/@variables.1\" name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"csp:AttributeVariable\" bound=\"true\" value=\"ACED00057400136E616D65417474722E67657456616C75652829\" type=\"String\" attribute=\"value\" objectVariable=\"nameAttr\"/>\r\n        <variables xsi:type=\"csp:AttributeVariable\" type=\"String\" attribute=\"name\" objectVariable=\"blipModel\"/>\r\n        <forward variables=\"//@ownedActivityNode.1/@storyPattern/@csp/@variables.0 //@ownedActivityNode.1/@storyPattern/@csp/@variables.1\" constraints=\"//@ownedActivityNode.1/@storyPattern/@csp/@constraints.0\"/>\r\n        <simultaneous variables=\"//@ownedActivityNode.1/@storyPattern/@csp/@variables.0 //@ownedActivityNode.1/@storyPattern/@csp/@variables.1\" constraints=\"//@ownedActivityNode.1/@storyPattern/@csp/@constraints.0\"/>\r\n        <backward variables=\"//@ownedActivityNode.1/@storyPattern/@csp/@variables.0 //@ownedActivityNode.1/@storyPattern/@csp/@variables.1\" constraints=\"//@ownedActivityNode.1/@storyPattern/@csp/@constraints.0\"/>\r\n        <source/>\r\n        <target/>\r\n      </csp>\r\n      <target href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StopNode\" incoming=\"//@ownedActivityEdge.2\">\r\n    <returnValue xsi:type=\"patternExpressions:ObjectVariableExpression\" object=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StartNode\" outgoing=\"//@ownedActivityEdge.0\"/>\r\n  <ownedActivityNode xsi:type=\"activities:StatementNode\" name=\"perform postprocessing\" outgoing=\"//@ownedActivityEdge.2\" incoming=\"//@ownedActivityEdge.4\">\r\n    <statementExpression xsi:type=\"expressions:LiteralExpression\" value=\"// No post processing method found\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"bookkeeping for edges\" outgoing=\"//@ownedActivityEdge.4\" incoming=\"//@ownedActivityEdge.3\">\r\n    <storyPattern>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.0 //@ownedActivityNode.5/@storyPattern/@linkVariable.3 //@ownedActivityNode.5/@storyPattern/@linkVariable.7 //@ownedActivityNode.5/@storyPattern/@linkVariable.10 //@ownedActivityNode.5/@storyPattern/@linkVariable.13\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//PerformRuleResult\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"applicationNode\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.1\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EObject\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"blipModelNode\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.2 //@ownedActivityNode.5/@storyPattern/@linkVariable.5 //@ownedActivityNode.5/@storyPattern/@linkVariable.6\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EObject\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"nameAttr\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.4\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EObject\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"mApplicationToApplication\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EObject\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"mModelToModel\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.8 //@ownedActivityNode.5/@storyPattern/@linkVariable.11\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EObject\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"application\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.14\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EObject\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"blipModel\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.9 //@ownedActivityNode.5/@storyPattern/@linkVariable.12\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EObject\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"blipModelNode__parentNode__applicationNode\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.0\" outgoingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.2 //@ownedActivityNode.5/@storyPattern/@linkVariable.1\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Edge\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//Edge/name\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;parentNode&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable name=\"blipModelNode__attribute__nameAttr\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.3\" outgoingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.5 //@ownedActivityNode.5/@storyPattern/@linkVariable.4\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Edge\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//Edge/name\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;attribute&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable name=\"mModelToModel__source__blipModelNode\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.7\" outgoingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.6 //@ownedActivityNode.5/@storyPattern/@linkVariable.8\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Edge\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//Edge/name\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;source&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable name=\"mModelToModel__target__blipModel\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.10\" outgoingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.9 //@ownedActivityNode.5/@storyPattern/@linkVariable.11\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Edge\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//Edge/name\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;target&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable name=\"application__models__blipModel\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.13\" outgoingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.12 //@ownedActivityNode.5/@storyPattern/@linkVariable.14\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Edge\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//Edge/name\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;models&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <linkVariable name=\"translatedEdges\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.8\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.1\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.8\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.2\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.8\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"translatedEdges\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.9\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.3\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.9\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.2\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.9\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.2\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.10\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.10\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.5\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.10\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.7\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.11\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.11\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.5\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.11\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.7\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.12\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.12\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.6\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.12\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.3\" target=\"//@ownedActivityNode.1\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.1\" target=\"//@ownedActivityNode.0\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.4\" target=\"//@ownedActivityNode.2\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.0\" target=\"//@ownedActivityNode.5\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.5\" target=\"//@ownedActivityNode.4\"/>\r\n</activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      Object _TmpObject = null;\n      BlipApplication application = null;\n      Node applicationNode = null;\n      Node blipModelNode = null;\n      MApplicationToApplication mApplicationToApplication = null;\n      Attribute nameAttr = null;\n      Iterator fujaba__IterIsApplicableMatchToCsp = null;\n      CSP csp = null;\n      MModelToModel mModelToModel = null;\n      BlipModel blipModel = null;\n      PerformRuleResult ruleresult = null;\n      Edge mModelToModel__source__blipModelNode = null;\n      Edge mModelToModel__target__blipModel = null;\n      Edge application__models__blipModel = null;\n      Edge blipModelNode__attribute__nameAttr = null;\n      Edge blipModelNode__parentNode__applicationNode = null;\n\n      // story node \'perform transformation\'\n      try \n      {\n         fujaba__Success = false; \n\n         _TmpObject = (isApplicableMatch.getObject(\"application\"));\n\n         // ensure correct type and really bound of object application\n         JavaSDM.ensure ( _TmpObject instanceof BlipApplication );\n         application = (BlipApplication) _TmpObject;\n         _TmpObject = (isApplicableMatch.getObject(\"applicationNode\"));\n\n         // ensure correct type and really bound of object applicationNode\n         JavaSDM.ensure ( _TmpObject instanceof Node );\n         applicationNode = (Node) _TmpObject;\n         _TmpObject = (isApplicableMatch.getObject(\"blipModelNode\"));\n\n         // ensure correct type and really bound of object blipModelNode\n         JavaSDM.ensure ( _TmpObject instanceof Node );\n         blipModelNode = (Node) _TmpObject;\n         _TmpObject = (isApplicableMatch.getObject(\"mApplicationToApplication\"));\n\n         // ensure correct type and really bound of object mApplicationToApplication\n         JavaSDM.ensure ( _TmpObject instanceof MApplicationToApplication );\n         mApplicationToApplication = (MApplicationToApplication) _TmpObject;\n         _TmpObject = (isApplicableMatch.getObject(\"nameAttr\"));\n\n         // ensure correct type and really bound of object nameAttr\n         JavaSDM.ensure ( _TmpObject instanceof Attribute );\n         nameAttr = (Attribute) _TmpObject;\n         // check object isApplicableMatch is really bound\n         JavaSDM.ensure ( isApplicableMatch != null );\n         // check isomorphic binding between objects blipModelNode and applicationNode \n         JavaSDM.ensure ( !blipModelNode.equals (applicationNode) );\n\n         // iterate to-many link attributeInfo from isApplicableMatch to csp\n         fujaba__Success = false;\n\n         fujaba__IterIsApplicableMatchToCsp = isApplicableMatch.getAttributeInfo().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterIsApplicableMatchToCsp.hasNext () )\n         {\n            try\n            {\n               _TmpObject =  fujaba__IterIsApplicableMatchToCsp.next ();\n\n               // ensure correct type and really bound of object csp\n               JavaSDM.ensure ( _TmpObject instanceof CSP );\n               csp = (CSP) _TmpObject;\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         if (!fujaba__Success)\n         {\n            fujaba__Success = true;\n            csp = null;\n         }\n         // attribute condition\n         JavaSDM.ensure ( JavaSDM.stringCompare (blipModelNode.getName (), \"Model\") == 0 );\n\n         // attribute condition\n         JavaSDM.ensure ( JavaSDM.stringCompare (nameAttr.getName (), \"name\") == 0 );\n\n         // create object mModelToModel\n         mModelToModel = BlipTGGFactory.eINSTANCE.createMModelToModel();\n\n         // create object blipModel\n         blipModel = BlipLanguageFactory.eINSTANCE.createBlipModel();\n\n         // assign attribute blipModel\n         blipModel.setName ((java.lang.String)csp.getAttributeVariable(\"blipModel\",\"name\").getValue());\n\n         // create link\n         mModelToModel.setSource( blipModelNode);\n\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(mModelToModel,blipModel,\"target\");\n\n         // create link\n         \tapplication.getModels().add(blipModel); // add link\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story node \'collect translated elements\'\n      try \n      {\n         fujaba__Success = false; \n\n         // check object blipModel is really bound\n         JavaSDM.ensure ( blipModel != null );\n         // check object blipModelNode is really bound\n         JavaSDM.ensure ( blipModelNode != null );\n         // check object mModelToModel is really bound\n         JavaSDM.ensure ( mModelToModel != null );\n         // check object nameAttr is really bound\n         JavaSDM.ensure ( nameAttr != null );\n         // create object ruleresult\n         ruleresult = TGGRuntimeFactory.eINSTANCE.createPerformRuleResult();\n\n         // assign attribute ruleresult\n         ruleresult.setSuccess (true);\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleresult,blipModel,\"createdElements\");\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleresult,nameAttr,\"translatedElements\");\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleresult,blipModelNode,\"translatedElements\");\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleresult,mModelToModel,\"createdLinkElements\");\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story node \'bookkeeping for edges\'\n      try \n      {\n         fujaba__Success = false; \n\n         // check object application is really bound\n         JavaSDM.ensure ( application != null );\n         // check object applicationNode is really bound\n         JavaSDM.ensure ( applicationNode != null );\n         // check object blipModel is really bound\n         JavaSDM.ensure ( blipModel != null );\n         // check object blipModelNode is really bound\n         JavaSDM.ensure ( blipModelNode != null );\n         // check object mApplicationToApplication is really bound\n         JavaSDM.ensure ( mApplicationToApplication != null );\n         // check object mModelToModel is really bound\n         JavaSDM.ensure ( mModelToModel != null );\n         // check object nameAttr is really bound\n         JavaSDM.ensure ( nameAttr != null );\n         // check object ruleresult is really bound\n         JavaSDM.ensure ( ruleresult != null );\n         // check isomorphic binding between objects applicationNode and application \n         JavaSDM.ensure ( !applicationNode.equals (application) );\n\n         // check isomorphic binding between objects blipModel and application \n         JavaSDM.ensure ( !blipModel.equals (application) );\n\n         // check isomorphic binding between objects blipModelNode and application \n         JavaSDM.ensure ( !blipModelNode.equals (application) );\n\n         // check isomorphic binding between objects mApplicationToApplication and application \n         JavaSDM.ensure ( !mApplicationToApplication.equals (application) );\n\n         // check isomorphic binding between objects mModelToModel and application \n         JavaSDM.ensure ( !mModelToModel.equals (application) );\n\n         // check isomorphic binding between objects nameAttr and application \n         JavaSDM.ensure ( !nameAttr.equals (application) );\n\n         // check isomorphic binding between objects blipModel and applicationNode \n         JavaSDM.ensure ( !blipModel.equals (applicationNode) );\n\n         // check isomorphic binding between objects blipModelNode and applicationNode \n         JavaSDM.ensure ( !blipModelNode.equals (applicationNode) );\n\n         // check isomorphic binding between objects mApplicationToApplication and applicationNode \n         JavaSDM.ensure ( !mApplicationToApplication.equals (applicationNode) );\n\n         // check isomorphic binding between objects mModelToModel and applicationNode \n         JavaSDM.ensure ( !mModelToModel.equals (applicationNode) );\n\n         // check isomorphic binding between objects nameAttr and applicationNode \n         JavaSDM.ensure ( !nameAttr.equals (applicationNode) );\n\n         // check isomorphic binding between objects blipModelNode and blipModel \n         JavaSDM.ensure ( !blipModelNode.equals (blipModel) );\n\n         // check isomorphic binding between objects mApplicationToApplication and blipModel \n         JavaSDM.ensure ( !mApplicationToApplication.equals (blipModel) );\n\n         // check isomorphic binding between objects mModelToModel and blipModel \n         JavaSDM.ensure ( !mModelToModel.equals (blipModel) );\n\n         // check isomorphic binding between objects nameAttr and blipModel \n         JavaSDM.ensure ( !nameAttr.equals (blipModel) );\n\n         // check isomorphic binding between objects mApplicationToApplication and blipModelNode \n         JavaSDM.ensure ( !mApplicationToApplication.equals (blipModelNode) );\n\n         // check isomorphic binding between objects mModelToModel and blipModelNode \n         JavaSDM.ensure ( !mModelToModel.equals (blipModelNode) );\n\n         // check isomorphic binding between objects nameAttr and blipModelNode \n         JavaSDM.ensure ( !nameAttr.equals (blipModelNode) );\n\n         // check isomorphic binding between objects mModelToModel and mApplicationToApplication \n         JavaSDM.ensure ( !mModelToModel.equals (mApplicationToApplication) );\n\n         // check isomorphic binding between objects nameAttr and mApplicationToApplication \n         JavaSDM.ensure ( !nameAttr.equals (mApplicationToApplication) );\n\n         // check isomorphic binding between objects nameAttr and mModelToModel \n         JavaSDM.ensure ( !nameAttr.equals (mModelToModel) );\n\n         // create object mModelToModel__source__blipModelNode\n         mModelToModel__source__blipModelNode = TGGRuntimeFactory.eINSTANCE.createEdge();\n\n         // create object mModelToModel__target__blipModel\n         mModelToModel__target__blipModel = TGGRuntimeFactory.eINSTANCE.createEdge();\n\n         // create object application__models__blipModel\n         application__models__blipModel = TGGRuntimeFactory.eINSTANCE.createEdge();\n\n         // create object blipModelNode__attribute__nameAttr\n         blipModelNode__attribute__nameAttr = TGGRuntimeFactory.eINSTANCE.createEdge();\n\n         // create object blipModelNode__parentNode__applicationNode\n         blipModelNode__parentNode__applicationNode = TGGRuntimeFactory.eINSTANCE.createEdge();\n\n         // assign attribute blipModelNode__parentNode__applicationNode\n         blipModelNode__parentNode__applicationNode.setName (\"parentNode\");\n         // assign attribute blipModelNode__attribute__nameAttr\n         blipModelNode__attribute__nameAttr.setName (\"attribute\");\n         // assign attribute mModelToModel__source__blipModelNode\n         mModelToModel__source__blipModelNode.setName (\"source\");\n         // assign attribute mModelToModel__target__blipModel\n         mModelToModel__target__blipModel.setName (\"target\");\n         // assign attribute application__models__blipModel\n         application__models__blipModel.setName (\"models\");\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleresult,mModelToModel__source__blipModelNode,\"createdEdges\");\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleresult,mModelToModel__target__blipModel,\"createdEdges\");\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleresult,application__models__blipModel,\"createdEdges\");\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleresult,blipModelNode__attribute__nameAttr,\"translatedEdges\");\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleresult,blipModelNode__parentNode__applicationNode,\"translatedEdges\");\n\n         // create link\n         blipModelNode__parentNode__applicationNode.setTrg( applicationNode);\n\n\n         // create link\n         blipModelNode__attribute__nameAttr.setSrc( blipModelNode);\n\n\n         // create link\n         mModelToModel__source__blipModelNode.setTrg( blipModelNode);\n\n\n         // create link\n         blipModelNode__parentNode__applicationNode.setSrc( blipModelNode);\n\n\n         // create link\n         blipModelNode__attribute__nameAttr.setTrg( nameAttr);\n\n\n         // create link\n         mModelToModel__target__blipModel.setSrc( mModelToModel);\n\n\n         // create link\n         mModelToModel__source__blipModelNode.setSrc( mModelToModel);\n\n\n         // create link\n         application__models__blipModel.setSrc( application);\n\n\n         // create link\n         mModelToModel__target__blipModel.setTrg( blipModel);\n\n\n         // create link\n         application__models__blipModel.setTrg( blipModel);\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // statement node \'perform postprocessing\'\n      // No post processing method found\n      return ruleresult;'"
	 * @generated
	 */
	PerformRuleResult perform_FWD(IsApplicableMatch isApplicableMatch);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<activities:Activity xmi:version=\"2.0\" xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:activities=\"http://www.moflon.org.SDMLanguage.activities\" xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\" xmlns:expressions=\"http://www.moflon.org.SDMLanguage.expressions\">\r\n  <ownedActivityNode xsi:type=\"activities:StatementNode\" name=\"Check CSP\" outgoing=\"//@ownedActivityEdge.3 //@ownedActivityEdge.5\" incoming=\"//@ownedActivityEdge.1\">\r\n    <statementExpression xsi:type=\"expressions:LiteralExpression\" value=\"csp.check();\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StatementNode\" name=\"Solve CSP\" outgoing=\"//@ownedActivityEdge.1\" incoming=\"//@ownedActivityEdge.2\">\r\n    <statementExpression xsi:type=\"expressions:LiteralExpression\" value=\"// Create CSP&#xD;&#xA;CSP csp = CspFactory.eINSTANCE.createCSP();&#xD;&#xA;&#xD;&#xA;// Create literals&#xD;&#xA;&#xD;&#xA;// Create attribute variables&#xD;&#xA;&#xD;&#xA;// Create explicit parameters&#xD;&#xA;&#xD;&#xA;// Create unbound variables&#xD;&#xA;&#xD;&#xA;// Create constraints&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;// Solve CSP&#xD;&#xA;\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StopNode\" incoming=\"//@ownedActivityEdge.3\">\r\n    <returnValue xsi:type=\"expressions:LiteralExpression\" value=\"false\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"collect elements to be translated\" outgoing=\"//@ownedActivityEdge.0\" incoming=\"//@ownedActivityEdge.5\">\r\n    <storyPattern>\r\n      <objectVariable name=\"match\" outgoingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.0 //@ownedActivityNode.3/@storyPattern/@linkVariable.1 //@ownedActivityNode.3/@storyPattern/@linkVariable.2 //@ownedActivityNode.3/@storyPattern/@linkVariable.5\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Match\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"blipModelNode\" incomingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.0 //@ownedActivityNode.3/@storyPattern/@linkVariable.3 //@ownedActivityNode.3/@storyPattern/@linkVariable.6\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Node\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"nameAttr\" incomingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.1 //@ownedActivityNode.3/@storyPattern/@linkVariable.7\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Attribute\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"blipModelNode__parentNode__applicationNode\" incomingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.2\" outgoingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.3 //@ownedActivityNode.3/@storyPattern/@linkVariable.4\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Edge\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//Edge/name\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;parentNode&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable name=\"applicationNode\" incomingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.4\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Node\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"blipModelNode__attribute__nameAttr\" incomingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.5\" outgoingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.6 //@ownedActivityNode.3/@storyPattern/@linkVariable.7\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Edge\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//Edge/name\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;attribute&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <linkVariable name=\"toBeTranslatedElements\" target=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.1\" source=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"toBeTranslatedElements\" target=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.2\" source=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"toBeTranslatedEdges\" target=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.3\" source=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.1\" source=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.3\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.4\" source=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.3\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"toBeTranslatedEdges\" target=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.5\" source=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.1\" source=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.5\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.2\" source=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.5\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StartNode\" outgoing=\"//@ownedActivityEdge.2\"/>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"collect context elements\" outgoing=\"//@ownedActivityEdge.4\" incoming=\"//@ownedActivityEdge.0\">\r\n    <storyPattern>\r\n      <objectVariable name=\"match\" outgoingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Match\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"applicationNode\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Node\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"contextNodes\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.1\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StopNode\" incoming=\"//@ownedActivityEdge.6\">\r\n    <returnValue xsi:type=\"expressions:LiteralExpression\" value=\"true\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StatementNode\" name=\"register objects to match\" outgoing=\"//@ownedActivityEdge.6\" incoming=\"//@ownedActivityEdge.4\">\r\n    <statementExpression xsi:type=\"expressions:LiteralExpression\" value=\"match.registerObject(&quot;applicationNode&quot;, applicationNode);&#xA;match.registerObject(&quot;blipModelNode&quot;, blipModelNode);&#xA;match.registerObject(&quot;nameAttr&quot;, nameAttr);&#xA;\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.3\" target=\"//@ownedActivityNode.5\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.1\" target=\"//@ownedActivityNode.0\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.4\" target=\"//@ownedActivityNode.1\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.0\" target=\"//@ownedActivityNode.2\" guard=\"FAILURE\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.5\" target=\"//@ownedActivityNode.7\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.0\" target=\"//@ownedActivityNode.3\" guard=\"SUCCESS\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.7\" target=\"//@ownedActivityNode.6\"/>\r\n</activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      Edge blipModelNode__parentNode__applicationNode = null;\n      Edge blipModelNode__attribute__nameAttr = null;\n\n      // statement node \'Solve CSP\'\n      // Create CSP\n      CSP csp = CspFactory.eINSTANCE.createCSP();\n\n      // Create literals\n\n      // Create attribute variables\n\n      // Create explicit parameters\n\n      // Create unbound variables\n\n      // Create constraints\n\n\n\n\n      // Solve CSP\n\n      // statement node \'Check CSP\'\n      fujaba__Success = csp.check();\n      if (fujaba__Success)\n      {\n         // story node \'collect elements to be translated\'\n         try \n         {\n            fujaba__Success = false; \n\n            // check object applicationNode is really bound\n            JavaSDM.ensure ( applicationNode != null );\n            // check object blipModelNode is really bound\n            JavaSDM.ensure ( blipModelNode != null );\n            // check object match is really bound\n            JavaSDM.ensure ( match != null );\n            // check object nameAttr is really bound\n            JavaSDM.ensure ( nameAttr != null );\n            // check isomorphic binding between objects blipModelNode and applicationNode \n            JavaSDM.ensure ( !blipModelNode.equals (applicationNode) );\n\n            // create object blipModelNode__parentNode__applicationNode\n            blipModelNode__parentNode__applicationNode = TGGRuntimeFactory.eINSTANCE.createEdge();\n\n            // create object blipModelNode__attribute__nameAttr\n            blipModelNode__attribute__nameAttr = TGGRuntimeFactory.eINSTANCE.createEdge();\n\n            // assign attribute blipModelNode__parentNode__applicationNode\n            blipModelNode__parentNode__applicationNode.setName (\"parentNode\");\n            // assign attribute blipModelNode__attribute__nameAttr\n            blipModelNode__attribute__nameAttr.setName (\"attribute\");\n\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,nameAttr,\"toBeTranslatedElements\");\n\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,blipModelNode__parentNode__applicationNode,\"toBeTranslatedEdges\");\n\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,blipModelNode__attribute__nameAttr,\"toBeTranslatedEdges\");\n\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,blipModelNode,\"toBeTranslatedElements\");\n\n            // create link\n            blipModelNode__attribute__nameAttr.setSrc( blipModelNode);\n\n\n            // create link\n            blipModelNode__parentNode__applicationNode.setSrc( blipModelNode);\n\n\n            // create link\n            blipModelNode__attribute__nameAttr.setTrg( nameAttr);\n\n\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(blipModelNode__parentNode__applicationNode,applicationNode,\"trg\");\n            fujaba__Success = true;\n         }\n         catch ( JavaSDMException fujaba__InternalException )\n         {\n            fujaba__Success = false;\n         }\n\n         // story node \'collect context elements\'\n         try \n         {\n            fujaba__Success = false; \n\n            // check object applicationNode is really bound\n            JavaSDM.ensure ( applicationNode != null );\n            // check object match is really bound\n            JavaSDM.ensure ( match != null );\n\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,applicationNode,\"contextNodes\");\n            fujaba__Success = true;\n         }\n         catch ( JavaSDMException fujaba__InternalException )\n         {\n            fujaba__Success = false;\n         }\n\n         // statement node \'register objects to match\'\n         match.registerObject(\"applicationNode\", applicationNode);\n         match.registerObject(\"blipModelNode\", blipModelNode);\n         match.registerObject(\"nameAttr\", nameAttr);\n\n         return true;\n\n      }\n      else\n      {\n         return false;\n\n      }'"
	 * @generated
	 */
	boolean isAppropriate_FWD(Match match, Node applicationNode,
			Node blipModelNode, Attribute nameAttr);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<activities:Activity xmi:version=\"2.0\" xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:TGGLanguage=\"http://www.moflon.org.TGGLanguage\" xmlns:activities=\"http://www.moflon.org.SDMLanguage.activities\" xmlns:csp=\"http://www.moflon.org.TGGLanguage.csp\" xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\" xmlns:expressions=\"http://www.moflon.org.SDMLanguage.expressions\" xmlns:patternExpressions=\"http://www.moflon.org.SDMLanguage.patterns.patternExpressions\">\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"core match\" outgoing=\"//@ownedActivityEdge.8\" incoming=\"//@ownedActivityEdge.2\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"MModelToModelRule\" cspSpec=\"&#xD;&#xA;&#x9;&#x9;eq(nameAttr.value, blipModel.name)&#xD;&#xA;&#x9;\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"applicationNode\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Node\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"match.getObject(&quot;applicationNode&quot;)\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"blipModelNode\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Node\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"match.getObject(&quot;blipModelNode&quot;)\"/>\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"expressions:ComparisonExpression\" operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;Model&quot;\"/>\r\n            <leftExpression xsi:type=\"patternExpressions:AttributeValueExpression\">\r\n              <attribute href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//TreeElement/name\"/>\r\n            </leftExpression>\r\n          </constraintExpression>\r\n        </constraint>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"nameAttr\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Attribute\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"match.getObject(&quot;nameAttr&quot;)\"/>\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"expressions:ComparisonExpression\" operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;name&quot;\"/>\r\n            <leftExpression xsi:type=\"patternExpressions:AttributeValueExpression\">\r\n              <attribute href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//TreeElement/name\"/>\r\n            </leftExpression>\r\n          </constraintExpression>\r\n        </constraint>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"match\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Match\"/>\r\n      </objectVariable>\r\n      <correspondence href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      <source href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      <csp>\r\n        <constraints variables=\"//@ownedActivityNode.0/@storyPattern/@csp/@variables.0 //@ownedActivityNode.0/@storyPattern/@csp/@variables.1\" name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"csp:AttributeVariable\" type=\"String\" attribute=\"value\" objectVariable=\"nameAttr\"/>\r\n        <variables xsi:type=\"csp:AttributeVariable\" type=\"String\" attribute=\"name\" objectVariable=\"blipModel\"/>\r\n      </csp>\r\n      <target href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"prepare return value\" outgoing=\"//@ownedActivityEdge.2\" incoming=\"//@ownedActivityEdge.4\">\r\n    <storyPattern>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.1\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsApplicableRuleResult\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//RuleResult/success\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"false\"/>\r\n        </attributeAssignment>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//RuleResult/rule\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;MModelToModelRule&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable name=\"performOperation\" incomingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.0 //@ownedActivityNode.1/@storyPattern/@linkVariable.1\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EOperation\"/>\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"expressions:ComparisonExpression\" operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;perform_FWD&quot;\"/>\r\n            <leftExpression xsi:type=\"patternExpressions:AttributeValueExpression\" object=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.1\">\r\n              <attribute href=\"http://www.eclipse.org/emf/2002/Ecore#//ENamedElement/name\"/>\r\n            </leftExpression>\r\n          </constraintExpression>\r\n        </constraint>\r\n      </objectVariable>\r\n      <objectVariable name=\"eClass\" outgoingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EClass\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"this.eClass()\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"eOperations\" target=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.1\" source=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.2\"/>\r\n      <linkVariable name=\"performOperation\" target=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.1\" source=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StopNode\" incoming=\"//@ownedActivityEdge.5\">\r\n    <returnValue xsi:type=\"patternExpressions:ObjectVariableExpression\" object=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.0\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"find context\" outgoing=\"//@ownedActivityEdge.5 //@ownedActivityEdge.7\" incoming=\"//@ownedActivityEdge.0 //@ownedActivityEdge.3 //@ownedActivityEdge.8\" forEach=\"true\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"MModelToModelRule\" cspSpec=\"&#xD;&#xA;&#x9;&#x9;eq(nameAttr.value, blipModel.name)&#xD;&#xA;&#x9;\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"applicationNode\" incomingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.0 //@ownedActivityNode.3/@storyPattern/@linkVariable.2\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Node\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"blipModelNode\" outgoingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.0 //@ownedActivityNode.3/@storyPattern/@linkVariable.1\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Node\"/>\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"expressions:ComparisonExpression\" operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;Model&quot;\"/>\r\n            <leftExpression xsi:type=\"patternExpressions:AttributeValueExpression\">\r\n              <attribute href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//TreeElement/name\"/>\r\n            </leftExpression>\r\n          </constraintExpression>\r\n        </constraint>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"nameAttr\" incomingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.1\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Attribute\"/>\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"expressions:ComparisonExpression\" operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;name&quot;\"/>\r\n            <leftExpression xsi:type=\"patternExpressions:AttributeValueExpression\">\r\n              <attribute href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//TreeElement/name\"/>\r\n            </leftExpression>\r\n          </constraintExpression>\r\n        </constraint>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"mApplicationToApplication\" outgoingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.2 //@ownedActivityNode.3/@storyPattern/@linkVariable.3\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.BlipTGG#//MApplicationToApplication\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"application\" incomingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.3\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/resource/BlipLanguage/model/BlipLanguage.ecore#//BlipApplication\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"isApplicableMatch\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsApplicableMatch\"/>\r\n      </objectVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"parentNode\" target=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.1\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </linkVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"attribute\" target=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.2\" source=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.1\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </linkVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"source\" target=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.3\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      </linkVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"target\" target=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.4\" source=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.3\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      </linkVariable>\r\n      <correspondence href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      <source href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      <csp>\r\n        <constraints variables=\"//@ownedActivityNode.3/@storyPattern/@csp/@variables.0 //@ownedActivityNode.3/@storyPattern/@csp/@variables.1\" name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"csp:AttributeVariable\" type=\"String\" attribute=\"value\" objectVariable=\"nameAttr\"/>\r\n        <variables xsi:type=\"csp:AttributeVariable\" type=\"String\" attribute=\"name\" objectVariable=\"blipModel\"/>\r\n      </csp>\r\n      <target href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"add match to rule result\" outgoing=\"//@ownedActivityEdge.3\" incoming=\"//@ownedActivityEdge.6\">\r\n    <storyPattern>\r\n      <objectVariable name=\"isApplicableMatch\" incomingLink=\"//@ownedActivityNode.4/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsApplicableMatch\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.4/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsApplicableRuleResult\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//RuleResult/success\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"true\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <linkVariable name=\"isApplicableMatch\" target=\"//@ownedActivityNode.4/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.4/@storyPattern/@objectVariable.1\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StatementNode\" name=\"check CSP\" outgoing=\"//@ownedActivityEdge.0 //@ownedActivityEdge.6\" incoming=\"//@ownedActivityEdge.1\">\r\n    <statementExpression xsi:type=\"expressions:LiteralExpression\" value=\"csp.check();\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StatementNode\" name=\"solve CSP\" outgoing=\"//@ownedActivityEdge.1\" incoming=\"//@ownedActivityEdge.7\">\r\n    <statementExpression xsi:type=\"expressions:LiteralExpression\" value=\"// Create CSP&#xD;&#xA;CSP csp = CspFactory.eINSTANCE.createCSP();&#xD;&#xA;isApplicableMatch.getAttributeInfo().add(csp);&#xD;&#xA;&#xD;&#xA;// Create literals&#xD;&#xA;&#xD;&#xA;// Create attribute variables&#xD;&#xA;Variable&lt;String> var_nameAttr_value = CspFactory.eINSTANCE.createVariable(&quot;nameAttr.value&quot;, true, csp);&#xD;&#xA;var_nameAttr_value.setValue(nameAttr.getValue());&#xD;&#xA;&#xD;&#xA;// Create explicit parameters&#xD;&#xA;&#xD;&#xA;// Create unbound variables&#xD;&#xA;Variable&lt;String> var_blipModel_name = CspFactory.eINSTANCE.createVariable(&quot;blipModel.name&quot;, csp);&#xD;&#xA;&#xD;&#xA;// Create constraints&#xD;&#xA;Eq&lt;String> eq = new Eq&lt;String>();&#xD;&#xA;&#xD;&#xA;csp.getConstraints().add(eq);&#xD;&#xA;&#xD;&#xA;// Solve CSP&#xD;&#xA;eq.setRuleName(&quot;&quot;);&#xD;&#xA;eq.solve(var_nameAttr_value,var_blipModel_name);&#xD;&#xA;&#xD;&#xA;// Snapshot pattern match on which CSP is solved&#xD;&#xA;isApplicableMatch.registerObject(&quot;applicationNode&quot;,applicationNode);&#xD;&#xA;isApplicableMatch.registerObject(&quot;blipModelNode&quot;,blipModelNode);&#xD;&#xA;isApplicableMatch.registerObject(&quot;nameAttr&quot;,nameAttr);&#xD;&#xA;isApplicableMatch.registerObject(&quot;mApplicationToApplication&quot;,mApplicationToApplication);&#xD;&#xA;isApplicableMatch.registerObject(&quot;application&quot;,application);&#xD;&#xA;\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StartNode\" outgoing=\"//@ownedActivityEdge.4\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.5\" target=\"//@ownedActivityNode.3\" guard=\"FAILURE\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.6\" target=\"//@ownedActivityNode.5\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.1\" target=\"//@ownedActivityNode.0\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.4\" target=\"//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.7\" target=\"//@ownedActivityNode.1\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.3\" target=\"//@ownedActivityNode.2\" guard=\"END\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.5\" target=\"//@ownedActivityNode.4\" guard=\"SUCCESS\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.3\" target=\"//@ownedActivityNode.6\" guard=\"EACH_TIME\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.0\" target=\"//@ownedActivityNode.3\"/>\r\n</activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      Object _TmpObject = null;\n      EClass eClass = null;\n      Iterator fujaba__IterEClassToPerformOperation = null;\n      EOperation performOperation = null;\n      IsApplicableRuleResult ruleresult = null;\n      Node applicationNode = null;\n      Node blipModelNode = null;\n      Attribute nameAttr = null;\n      IsApplicableMatch isApplicableMatch = null;\n      BlipApplication application = null;\n      Iterator fujaba__IterApplicationNodeToMApplicationToApplication = null;\n      MApplicationToApplication mApplicationToApplication = null;\n\n      // story node \'prepare return value\'\n      try \n      {\n         fujaba__Success = false; \n\n         _TmpObject = (this.eClass());\n\n         // ensure correct type and really bound of object eClass\n         JavaSDM.ensure ( _TmpObject instanceof EClass );\n         eClass = (EClass) _TmpObject;\n         // iterate to-many link eOperations from eClass to performOperation\n         fujaba__Success = false;\n\n         fujaba__IterEClassToPerformOperation = eClass.getEOperations().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterEClassToPerformOperation.hasNext () )\n         {\n            try\n            {\n               performOperation = (EOperation) fujaba__IterEClassToPerformOperation.next ();\n\n               // check object performOperation is really bound\n               JavaSDM.ensure ( performOperation != null );\n               // attribute condition\n               JavaSDM.ensure ( JavaSDM.stringCompare (performOperation.getName (), \"perform_FWD\") == 0 );\n\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // create object ruleresult\n         ruleresult = TGGRuntimeFactory.eINSTANCE.createIsApplicableRuleResult();\n\n         // assign attribute ruleresult\n         ruleresult.setSuccess (false);\n         // assign attribute ruleresult\n         ruleresult.setRule (\"MModelToModelRule\");\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleresult,performOperation,\"performOperation\");\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story node \'core match\'\n      try \n      {\n         fujaba__Success = false; \n\n         _TmpObject = (match.getObject(\"applicationNode\"));\n\n         // ensure correct type and really bound of object applicationNode\n         JavaSDM.ensure ( _TmpObject instanceof Node );\n         applicationNode = (Node) _TmpObject;\n         _TmpObject = (match.getObject(\"blipModelNode\"));\n\n         // ensure correct type and really bound of object blipModelNode\n         JavaSDM.ensure ( _TmpObject instanceof Node );\n         blipModelNode = (Node) _TmpObject;\n         _TmpObject = (match.getObject(\"nameAttr\"));\n\n         // ensure correct type and really bound of object nameAttr\n         JavaSDM.ensure ( _TmpObject instanceof Attribute );\n         nameAttr = (Attribute) _TmpObject;\n         // check object match is really bound\n         JavaSDM.ensure ( match != null );\n         // check isomorphic binding between objects blipModelNode and applicationNode \n         JavaSDM.ensure ( !blipModelNode.equals (applicationNode) );\n\n         // attribute condition\n         JavaSDM.ensure ( JavaSDM.stringCompare (blipModelNode.getName (), \"Model\") == 0 );\n\n         // attribute condition\n         JavaSDM.ensure ( JavaSDM.stringCompare (nameAttr.getName (), \"name\") == 0 );\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story node \'find context\'\n      try \n      {\n         fujaba__Success = false; \n\n         // check object applicationNode is really bound\n         JavaSDM.ensure ( applicationNode != null );\n         // check object blipModelNode is really bound\n         JavaSDM.ensure ( blipModelNode != null );\n         // check object nameAttr is really bound\n         JavaSDM.ensure ( nameAttr != null );\n         // check isomorphic binding between objects blipModelNode and applicationNode \n         JavaSDM.ensure ( !blipModelNode.equals (applicationNode) );\n\n         // check link attribute from nameAttr to blipModelNode\n         JavaSDM.ensure (blipModelNode.equals (nameAttr.getNode ()\n         ));\n\n         // check link children from blipModelNode to applicationNode\n         JavaSDM.ensure (applicationNode.equals (blipModelNode.getParentNode ()\n         ));\n\n         // iterate to-many link source from applicationNode to mApplicationToApplication\n         fujaba__Success = false;\n\n         fujaba__IterApplicationNodeToMApplicationToApplication = new ArrayList(org.moflon.util.eMoflonEMFUtil.getOppositeReference(applicationNode,MApplicationToApplication.class,\"source\")).iterator ();\n\n         while ( fujaba__IterApplicationNodeToMApplicationToApplication.hasNext () )\n         {\n            try\n            {\n               mApplicationToApplication = (MApplicationToApplication) fujaba__IterApplicationNodeToMApplicationToApplication.next ();\n\n               // check object mApplicationToApplication is really bound\n               JavaSDM.ensure ( mApplicationToApplication != null );\n               // bind object\n               application = mApplicationToApplication.getTarget ();\n\n               // check object application is really bound\n               JavaSDM.ensure ( application != null );\n\n               // attribute condition\n               JavaSDM.ensure ( JavaSDM.stringCompare (blipModelNode.getName (), \"Model\") == 0 );\n\n               // attribute condition\n               JavaSDM.ensure ( JavaSDM.stringCompare (nameAttr.getName (), \"name\") == 0 );\n\n               // create object isApplicableMatch\n               isApplicableMatch = TGGRuntimeFactory.eINSTANCE.createIsApplicableMatch();\n\n               // statement node \'solve CSP\'\n               // Create CSP\n               CSP csp = CspFactory.eINSTANCE.createCSP();\n               isApplicableMatch.getAttributeInfo().add(csp);\n\n               // Create literals\n\n               // Create attribute variables\n               Variable<String> var_nameAttr_value = CspFactory.eINSTANCE.createVariable(\"nameAttr.value\", true, csp);\n               var_nameAttr_value.setValue(nameAttr.getValue());\n\n               // Create explicit parameters\n\n               // Create unbound variables\n               Variable<String> var_blipModel_name = CspFactory.eINSTANCE.createVariable(\"blipModel.name\", csp);\n\n               // Create constraints\n               Eq<String> eq = new Eq<String>();\n\n               csp.getConstraints().add(eq);\n\n               // Solve CSP\n               eq.setRuleName(\"\");\n               eq.solve(var_nameAttr_value,var_blipModel_name);\n\n               // Snapshot pattern match on which CSP is solved\n               isApplicableMatch.registerObject(\"applicationNode\",applicationNode);\n               isApplicableMatch.registerObject(\"blipModelNode\",blipModelNode);\n               isApplicableMatch.registerObject(\"nameAttr\",nameAttr);\n               isApplicableMatch.registerObject(\"mApplicationToApplication\",mApplicationToApplication);\n               isApplicableMatch.registerObject(\"application\",application);\n\n               // statement node \'check CSP\'\n               fujaba__Success = csp.check();\n               if (fujaba__Success)\n               {\n                  // story node \'add match to rule result\'\n                  try \n                  {\n                     fujaba__Success = false; \n\n                     // check object isApplicableMatch is really bound\n                     JavaSDM.ensure ( isApplicableMatch != null );\n                     // check object ruleresult is really bound\n                     JavaSDM.ensure ( ruleresult != null );\n                     // assign attribute ruleresult\n                     ruleresult.setSuccess (true);\n\n                     // create link\n                     ruleresult.getIsApplicableMatch().add(isApplicableMatch);\n\n                     fujaba__Success = true;\n                  }\n                  catch ( JavaSDMException fujaba__InternalException )\n                  {\n                     fujaba__Success = false;\n                  }\n\n\n               }\n               else\n               {\n\n               }\n\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      return ruleresult;'"
	 * @generated
	 */
	IsApplicableRuleResult isApplicable_FWD(Match match);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<activities:Activity xmi:version=\"2.0\" xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:TGGLanguage=\"http://www.moflon.org.TGGLanguage\" xmlns:activities=\"http://www.moflon.org.SDMLanguage.activities\" xmlns:csp=\"http://www.moflon.org.TGGLanguage.csp\" xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\" xmlns:expressions=\"http://www.moflon.org.SDMLanguage.expressions\" xmlns:patternExpressions=\"http://www.moflon.org.SDMLanguage.patterns.patternExpressions\">\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"collect translated elements\" outgoing=\"//@ownedActivityEdge.3\" incoming=\"//@ownedActivityEdge.1\">\r\n    <storyPattern>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.0 //@ownedActivityNode.0/@storyPattern/@linkVariable.1 //@ownedActivityNode.0/@storyPattern/@linkVariable.2 //@ownedActivityNode.0/@storyPattern/@linkVariable.3\" bindingOperator=\"CREATE\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//PerformRuleResult\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//RuleResult/success\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"true\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable name=\"blipModelNode\" incomingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Node\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"nameAttr\" incomingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.1\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Attribute\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"mModelToModel\" incomingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.2\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.BlipTGG#//MModelToModel\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"blipModel\" incomingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.3\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/resource/BlipLanguage/model/BlipLanguage.ecore#//BlipModel\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"createdElements\" target=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.1\" source=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdElements\" target=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.2\" source=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdLinkElements\" target=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.3\" source=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"translatedElements\" target=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.4\" source=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"perform transformation\" outgoing=\"//@ownedActivityEdge.1\" incoming=\"//@ownedActivityEdge.0\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"MModelToModelRule\" cspSpec=\"&#xD;&#xA;&#x9;&#x9;eq(nameAttr.value, blipModel.name)&#xD;&#xA;&#x9;\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"applicationNode\" incomingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Node\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"isApplicableMatch.getObject(&quot;applicationNode&quot;)\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"blipModelNode\" incomingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.2\" outgoingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.0 //@ownedActivityNode.1/@storyPattern/@linkVariable.1\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Node\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//TreeElement/name\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;Model&quot;\"/>\r\n        </attributeAssignment>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"nameAttr\" incomingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.1\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Attribute\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//TreeElement/name\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;name&quot;\"/>\r\n        </attributeAssignment>\r\n        <attributeAssignment>\r\n          <attribute href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Attribute/value\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"(java.lang.String)csp.getAttributeVariable(&quot;nameAttr&quot;,&quot;value&quot;).getValue()\"/>\r\n        </attributeAssignment>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"mApplicationToApplication\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.BlipTGG#//MApplicationToApplication\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"isApplicableMatch.getObject(&quot;mApplicationToApplication&quot;)\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"mModelToModel\" outgoingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.2 //@ownedActivityNode.1/@storyPattern/@linkVariable.3\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.BlipTGG#//MModelToModel\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"application\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/resource/BlipLanguage/model/BlipLanguage.ecore#//BlipApplication\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"isApplicableMatch.getObject(&quot;application&quot;)\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"blipModel\" incomingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.3\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/resource/BlipLanguage/model/BlipLanguage.ecore#//BlipModel\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"isApplicableMatch.getObject(&quot;blipModel&quot;)\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"csp\" incomingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.4\" bindingSemantics=\"OPTIONAL\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGLanguage#//csp/CSP\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"this\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"isApplicableMatch.getObject(&quot;this&quot;)\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"isApplicableMatch\" outgoingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.4\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsApplicableMatch\"/>\r\n      </objectVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"parentNode\" target=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.1\" bindingOperator=\"CREATE\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </linkVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"attribute\" target=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.2\" source=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.1\" bindingOperator=\"CREATE\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </linkVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"source\" target=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.1\" source=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.4\" bindingOperator=\"CREATE\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      </linkVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"target\" target=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.6\" source=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.4\" bindingOperator=\"CREATE\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      </linkVariable>\r\n      <linkVariable name=\"attributeInfo\" target=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.7\" source=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.9\"/>\r\n      <correspondence href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      <source href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      <csp>\r\n        <constraints variables=\"//@ownedActivityNode.1/@storyPattern/@csp/@variables.0 //@ownedActivityNode.1/@storyPattern/@csp/@variables.1\" name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"csp:AttributeVariable\" type=\"String\" attribute=\"value\" objectVariable=\"nameAttr\"/>\r\n        <variables xsi:type=\"csp:AttributeVariable\" bound=\"true\" value=\"ACED0005740013626C69704D6F64656C2E6765744E616D652829\" type=\"String\" attribute=\"name\" objectVariable=\"blipModel\"/>\r\n        <forward variables=\"//@ownedActivityNode.1/@storyPattern/@csp/@variables.0 //@ownedActivityNode.1/@storyPattern/@csp/@variables.1\" constraints=\"//@ownedActivityNode.1/@storyPattern/@csp/@constraints.0\"/>\r\n        <simultaneous variables=\"//@ownedActivityNode.1/@storyPattern/@csp/@variables.0 //@ownedActivityNode.1/@storyPattern/@csp/@variables.1\" constraints=\"//@ownedActivityNode.1/@storyPattern/@csp/@constraints.0\"/>\r\n        <backward variables=\"//@ownedActivityNode.1/@storyPattern/@csp/@variables.0 //@ownedActivityNode.1/@storyPattern/@csp/@variables.1\" constraints=\"//@ownedActivityNode.1/@storyPattern/@csp/@constraints.0\"/>\r\n        <source/>\r\n        <target/>\r\n      </csp>\r\n      <target href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StopNode\" incoming=\"//@ownedActivityEdge.2\">\r\n    <returnValue xsi:type=\"patternExpressions:ObjectVariableExpression\" object=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StartNode\" outgoing=\"//@ownedActivityEdge.0\"/>\r\n  <ownedActivityNode xsi:type=\"activities:StatementNode\" name=\"perform postprocessing\" outgoing=\"//@ownedActivityEdge.2\" incoming=\"//@ownedActivityEdge.4\">\r\n    <statementExpression xsi:type=\"expressions:LiteralExpression\" value=\"// No post processing method found\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"bookkeeping for edges\" outgoing=\"//@ownedActivityEdge.4\" incoming=\"//@ownedActivityEdge.3\">\r\n    <storyPattern>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.1 //@ownedActivityNode.5/@storyPattern/@linkVariable.4 //@ownedActivityNode.5/@storyPattern/@linkVariable.7 //@ownedActivityNode.5/@storyPattern/@linkVariable.10 //@ownedActivityNode.5/@storyPattern/@linkVariable.12\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//PerformRuleResult\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"applicationNode\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EObject\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"blipModelNode\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.2 //@ownedActivityNode.5/@storyPattern/@linkVariable.5 //@ownedActivityNode.5/@storyPattern/@linkVariable.6\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EObject\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"nameAttr\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.3\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EObject\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"mApplicationToApplication\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EObject\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"mModelToModel\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.8 //@ownedActivityNode.5/@storyPattern/@linkVariable.11\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EObject\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"application\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.14\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EObject\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"blipModel\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.9 //@ownedActivityNode.5/@storyPattern/@linkVariable.13\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EObject\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"blipModelNode__parentNode__applicationNode\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.1\" outgoingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.0 //@ownedActivityNode.5/@storyPattern/@linkVariable.2\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Edge\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//Edge/name\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;parentNode&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable name=\"blipModelNode__attribute__nameAttr\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.4\" outgoingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.3 //@ownedActivityNode.5/@storyPattern/@linkVariable.5\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Edge\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//Edge/name\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;attribute&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable name=\"mModelToModel__source__blipModelNode\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.7\" outgoingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.6 //@ownedActivityNode.5/@storyPattern/@linkVariable.8\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Edge\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//Edge/name\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;source&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable name=\"mModelToModel__target__blipModel\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.10\" outgoingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.9 //@ownedActivityNode.5/@storyPattern/@linkVariable.11\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Edge\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//Edge/name\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;target&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable name=\"application__models__blipModel\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.12\" outgoingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.14 //@ownedActivityNode.5/@storyPattern/@linkVariable.13\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Edge\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//Edge/name\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;models&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <linkVariable name=\"trg\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.1\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.8\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.8\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.2\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.8\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.3\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.9\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.9\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.2\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.9\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.2\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.10\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.10\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.5\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.10\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.7\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.11\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.11\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.5\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.11\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"translatedEdges\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.12\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.7\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.12\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.6\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.12\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.3\" target=\"//@ownedActivityNode.1\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.1\" target=\"//@ownedActivityNode.0\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.4\" target=\"//@ownedActivityNode.2\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.0\" target=\"//@ownedActivityNode.5\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.5\" target=\"//@ownedActivityNode.4\"/>\r\n</activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      Object _TmpObject = null;\n      BlipApplication application = null;\n      Node applicationNode = null;\n      BlipModel blipModel = null;\n      MApplicationToApplication mApplicationToApplication = null;\n      Iterator fujaba__IterIsApplicableMatchToCsp = null;\n      CSP csp = null;\n      Node blipModelNode = null;\n      Attribute nameAttr = null;\n      MModelToModel mModelToModel = null;\n      PerformRuleResult ruleresult = null;\n      Edge blipModelNode__parentNode__applicationNode = null;\n      Edge mModelToModel__target__blipModel = null;\n      Edge blipModelNode__attribute__nameAttr = null;\n      Edge application__models__blipModel = null;\n      Edge mModelToModel__source__blipModelNode = null;\n\n      // story node \'perform transformation\'\n      try \n      {\n         fujaba__Success = false; \n\n         _TmpObject = (isApplicableMatch.getObject(\"application\"));\n\n         // ensure correct type and really bound of object application\n         JavaSDM.ensure ( _TmpObject instanceof BlipApplication );\n         application = (BlipApplication) _TmpObject;\n         _TmpObject = (isApplicableMatch.getObject(\"applicationNode\"));\n\n         // ensure correct type and really bound of object applicationNode\n         JavaSDM.ensure ( _TmpObject instanceof Node );\n         applicationNode = (Node) _TmpObject;\n         _TmpObject = (isApplicableMatch.getObject(\"blipModel\"));\n\n         // ensure correct type and really bound of object blipModel\n         JavaSDM.ensure ( _TmpObject instanceof BlipModel );\n         blipModel = (BlipModel) _TmpObject;\n         _TmpObject = (isApplicableMatch.getObject(\"mApplicationToApplication\"));\n\n         // ensure correct type and really bound of object mApplicationToApplication\n         JavaSDM.ensure ( _TmpObject instanceof MApplicationToApplication );\n         mApplicationToApplication = (MApplicationToApplication) _TmpObject;\n         // check object isApplicableMatch is really bound\n         JavaSDM.ensure ( isApplicableMatch != null );\n         // iterate to-many link attributeInfo from isApplicableMatch to csp\n         fujaba__Success = false;\n\n         fujaba__IterIsApplicableMatchToCsp = isApplicableMatch.getAttributeInfo().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterIsApplicableMatchToCsp.hasNext () )\n         {\n            try\n            {\n               _TmpObject =  fujaba__IterIsApplicableMatchToCsp.next ();\n\n               // ensure correct type and really bound of object csp\n               JavaSDM.ensure ( _TmpObject instanceof CSP );\n               csp = (CSP) _TmpObject;\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         if (!fujaba__Success)\n         {\n            fujaba__Success = true;\n            csp = null;\n         }\n         // create object blipModelNode\n         blipModelNode = MocaTreeFactory.eINSTANCE.createNode();\n\n         // create object nameAttr\n         nameAttr = MocaTreeFactory.eINSTANCE.createAttribute();\n\n         // create object mModelToModel\n         mModelToModel = BlipTGGFactory.eINSTANCE.createMModelToModel();\n\n         // assign attribute blipModelNode\n         blipModelNode.setName (\"Model\");\n         // assign attribute nameAttr\n         nameAttr.setName (\"name\");\n         // assign attribute nameAttr\n         nameAttr.setValue ((java.lang.String)csp.getAttributeVariable(\"nameAttr\",\"value\").getValue());\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(mModelToModel,blipModel,\"target\");\n\n         // create link\n         blipModelNode.setParentNode( applicationNode);\n\n\n         // create link\n         nameAttr.setNode( blipModelNode);\n\n\n         // create link\n         mModelToModel.setSource( blipModelNode);\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story node \'collect translated elements\'\n      try \n      {\n         fujaba__Success = false; \n\n         // check object blipModel is really bound\n         JavaSDM.ensure ( blipModel != null );\n         // check object blipModelNode is really bound\n         JavaSDM.ensure ( blipModelNode != null );\n         // check object mModelToModel is really bound\n         JavaSDM.ensure ( mModelToModel != null );\n         // check object nameAttr is really bound\n         JavaSDM.ensure ( nameAttr != null );\n         // create object ruleresult\n         ruleresult = TGGRuntimeFactory.eINSTANCE.createPerformRuleResult();\n\n         // assign attribute ruleresult\n         ruleresult.setSuccess (true);\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleresult,mModelToModel,\"createdLinkElements\");\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleresult,nameAttr,\"createdElements\");\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleresult,blipModelNode,\"createdElements\");\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleresult,blipModel,\"translatedElements\");\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story node \'bookkeeping for edges\'\n      try \n      {\n         fujaba__Success = false; \n\n         // check object application is really bound\n         JavaSDM.ensure ( application != null );\n         // check object applicationNode is really bound\n         JavaSDM.ensure ( applicationNode != null );\n         // check object blipModel is really bound\n         JavaSDM.ensure ( blipModel != null );\n         // check object blipModelNode is really bound\n         JavaSDM.ensure ( blipModelNode != null );\n         // check object mApplicationToApplication is really bound\n         JavaSDM.ensure ( mApplicationToApplication != null );\n         // check object mModelToModel is really bound\n         JavaSDM.ensure ( mModelToModel != null );\n         // check object nameAttr is really bound\n         JavaSDM.ensure ( nameAttr != null );\n         // check object ruleresult is really bound\n         JavaSDM.ensure ( ruleresult != null );\n         // check isomorphic binding between objects applicationNode and application \n         JavaSDM.ensure ( !applicationNode.equals (application) );\n\n         // check isomorphic binding between objects blipModel and application \n         JavaSDM.ensure ( !blipModel.equals (application) );\n\n         // check isomorphic binding between objects blipModelNode and application \n         JavaSDM.ensure ( !blipModelNode.equals (application) );\n\n         // check isomorphic binding between objects mApplicationToApplication and application \n         JavaSDM.ensure ( !mApplicationToApplication.equals (application) );\n\n         // check isomorphic binding between objects mModelToModel and application \n         JavaSDM.ensure ( !mModelToModel.equals (application) );\n\n         // check isomorphic binding between objects nameAttr and application \n         JavaSDM.ensure ( !nameAttr.equals (application) );\n\n         // check isomorphic binding between objects blipModel and applicationNode \n         JavaSDM.ensure ( !blipModel.equals (applicationNode) );\n\n         // check isomorphic binding between objects blipModelNode and applicationNode \n         JavaSDM.ensure ( !blipModelNode.equals (applicationNode) );\n\n         // check isomorphic binding between objects mApplicationToApplication and applicationNode \n         JavaSDM.ensure ( !mApplicationToApplication.equals (applicationNode) );\n\n         // check isomorphic binding between objects mModelToModel and applicationNode \n         JavaSDM.ensure ( !mModelToModel.equals (applicationNode) );\n\n         // check isomorphic binding between objects nameAttr and applicationNode \n         JavaSDM.ensure ( !nameAttr.equals (applicationNode) );\n\n         // check isomorphic binding between objects blipModelNode and blipModel \n         JavaSDM.ensure ( !blipModelNode.equals (blipModel) );\n\n         // check isomorphic binding between objects mApplicationToApplication and blipModel \n         JavaSDM.ensure ( !mApplicationToApplication.equals (blipModel) );\n\n         // check isomorphic binding between objects mModelToModel and blipModel \n         JavaSDM.ensure ( !mModelToModel.equals (blipModel) );\n\n         // check isomorphic binding between objects nameAttr and blipModel \n         JavaSDM.ensure ( !nameAttr.equals (blipModel) );\n\n         // check isomorphic binding between objects mApplicationToApplication and blipModelNode \n         JavaSDM.ensure ( !mApplicationToApplication.equals (blipModelNode) );\n\n         // check isomorphic binding between objects mModelToModel and blipModelNode \n         JavaSDM.ensure ( !mModelToModel.equals (blipModelNode) );\n\n         // check isomorphic binding between objects nameAttr and blipModelNode \n         JavaSDM.ensure ( !nameAttr.equals (blipModelNode) );\n\n         // check isomorphic binding between objects mModelToModel and mApplicationToApplication \n         JavaSDM.ensure ( !mModelToModel.equals (mApplicationToApplication) );\n\n         // check isomorphic binding between objects nameAttr and mApplicationToApplication \n         JavaSDM.ensure ( !nameAttr.equals (mApplicationToApplication) );\n\n         // check isomorphic binding between objects nameAttr and mModelToModel \n         JavaSDM.ensure ( !nameAttr.equals (mModelToModel) );\n\n         // create object blipModelNode__parentNode__applicationNode\n         blipModelNode__parentNode__applicationNode = TGGRuntimeFactory.eINSTANCE.createEdge();\n\n         // create object mModelToModel__target__blipModel\n         mModelToModel__target__blipModel = TGGRuntimeFactory.eINSTANCE.createEdge();\n\n         // create object blipModelNode__attribute__nameAttr\n         blipModelNode__attribute__nameAttr = TGGRuntimeFactory.eINSTANCE.createEdge();\n\n         // create object application__models__blipModel\n         application__models__blipModel = TGGRuntimeFactory.eINSTANCE.createEdge();\n\n         // create object mModelToModel__source__blipModelNode\n         mModelToModel__source__blipModelNode = TGGRuntimeFactory.eINSTANCE.createEdge();\n\n         // assign attribute blipModelNode__parentNode__applicationNode\n         blipModelNode__parentNode__applicationNode.setName (\"parentNode\");\n         // assign attribute blipModelNode__attribute__nameAttr\n         blipModelNode__attribute__nameAttr.setName (\"attribute\");\n         // assign attribute mModelToModel__source__blipModelNode\n         mModelToModel__source__blipModelNode.setName (\"source\");\n         // assign attribute mModelToModel__target__blipModel\n         mModelToModel__target__blipModel.setName (\"target\");\n         // assign attribute application__models__blipModel\n         application__models__blipModel.setName (\"models\");\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleresult,blipModelNode__parentNode__applicationNode,\"createdEdges\");\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleresult,mModelToModel__target__blipModel,\"createdEdges\");\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleresult,blipModelNode__attribute__nameAttr,\"createdEdges\");\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleresult,application__models__blipModel,\"translatedEdges\");\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleresult,mModelToModel__source__blipModelNode,\"createdEdges\");\n\n         // create link\n         blipModelNode__parentNode__applicationNode.setTrg( applicationNode);\n\n\n         // create link\n         mModelToModel__source__blipModelNode.setTrg( blipModelNode);\n\n\n         // create link\n         blipModelNode__parentNode__applicationNode.setSrc( blipModelNode);\n\n\n         // create link\n         blipModelNode__attribute__nameAttr.setSrc( blipModelNode);\n\n\n         // create link\n         blipModelNode__attribute__nameAttr.setTrg( nameAttr);\n\n\n         // create link\n         mModelToModel__source__blipModelNode.setSrc( mModelToModel);\n\n\n         // create link\n         mModelToModel__target__blipModel.setSrc( mModelToModel);\n\n\n         // create link\n         application__models__blipModel.setSrc( application);\n\n\n         // create link\n         mModelToModel__target__blipModel.setTrg( blipModel);\n\n\n         // create link\n         application__models__blipModel.setTrg( blipModel);\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // statement node \'perform postprocessing\'\n      // No post processing method found\n      return ruleresult;'"
	 * @generated
	 */
	PerformRuleResult perform_BWD(IsApplicableMatch isApplicableMatch);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<activities:Activity xmi:version=\"2.0\" xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:activities=\"http://www.moflon.org.SDMLanguage.activities\" xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\" xmlns:expressions=\"http://www.moflon.org.SDMLanguage.expressions\">\r\n  <ownedActivityNode xsi:type=\"activities:StatementNode\" name=\"Check CSP\" outgoing=\"//@ownedActivityEdge.3 //@ownedActivityEdge.5\" incoming=\"//@ownedActivityEdge.1\">\r\n    <statementExpression xsi:type=\"expressions:LiteralExpression\" value=\"csp.check();\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StatementNode\" name=\"Solve CSP\" outgoing=\"//@ownedActivityEdge.1\" incoming=\"//@ownedActivityEdge.2\">\r\n    <statementExpression xsi:type=\"expressions:LiteralExpression\" value=\"// Create CSP&#xD;&#xA;CSP csp = CspFactory.eINSTANCE.createCSP();&#xD;&#xA;&#xD;&#xA;// Create literals&#xD;&#xA;&#xD;&#xA;// Create attribute variables&#xD;&#xA;&#xD;&#xA;// Create explicit parameters&#xD;&#xA;&#xD;&#xA;// Create unbound variables&#xD;&#xA;&#xD;&#xA;// Create constraints&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;// Solve CSP&#xD;&#xA;\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StopNode\" incoming=\"//@ownedActivityEdge.3\">\r\n    <returnValue xsi:type=\"expressions:LiteralExpression\" value=\"false\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"collect elements to be translated\" outgoing=\"//@ownedActivityEdge.0\" incoming=\"//@ownedActivityEdge.5\">\r\n    <storyPattern>\r\n      <objectVariable name=\"match\" outgoingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.0 //@ownedActivityNode.3/@storyPattern/@linkVariable.1\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Match\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"blipModel\" incomingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.0 //@ownedActivityNode.3/@storyPattern/@linkVariable.3\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/resource/BlipLanguage/model/BlipLanguage.ecore#//BlipModel\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"application__models__blipModel\" incomingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.1\" outgoingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.2 //@ownedActivityNode.3/@storyPattern/@linkVariable.3\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Edge\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//Edge/name\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;models&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable name=\"application\" incomingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.2\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/resource/BlipLanguage/model/BlipLanguage.ecore#//BlipApplication\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"toBeTranslatedElements\" target=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.1\" source=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"toBeTranslatedEdges\" target=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.2\" source=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.3\" source=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.1\" source=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StartNode\" outgoing=\"//@ownedActivityEdge.2\"/>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"collect context elements\" outgoing=\"//@ownedActivityEdge.4\" incoming=\"//@ownedActivityEdge.0\">\r\n    <storyPattern>\r\n      <objectVariable name=\"match\" outgoingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Match\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"application\" incomingLink=\"//@ownedActivityNode.5/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/resource/BlipLanguage/model/BlipLanguage.ecore#//BlipApplication\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"contextNodes\" target=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.1\" source=\"//@ownedActivityNode.5/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StopNode\" incoming=\"//@ownedActivityEdge.6\">\r\n    <returnValue xsi:type=\"expressions:LiteralExpression\" value=\"true\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StatementNode\" name=\"register objects to match\" outgoing=\"//@ownedActivityEdge.6\" incoming=\"//@ownedActivityEdge.4\">\r\n    <statementExpression xsi:type=\"expressions:LiteralExpression\" value=\"match.registerObject(&quot;application&quot;, application);&#xA;match.registerObject(&quot;blipModel&quot;, blipModel);&#xA;\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.3\" target=\"//@ownedActivityNode.5\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.1\" target=\"//@ownedActivityNode.0\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.4\" target=\"//@ownedActivityNode.1\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.0\" target=\"//@ownedActivityNode.2\" guard=\"FAILURE\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.5\" target=\"//@ownedActivityNode.7\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.0\" target=\"//@ownedActivityNode.3\" guard=\"SUCCESS\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.7\" target=\"//@ownedActivityNode.6\"/>\r\n</activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      Edge application__models__blipModel = null;\n\n      // statement node \'Solve CSP\'\n      // Create CSP\n      CSP csp = CspFactory.eINSTANCE.createCSP();\n\n      // Create literals\n\n      // Create attribute variables\n\n      // Create explicit parameters\n\n      // Create unbound variables\n\n      // Create constraints\n\n\n\n\n      // Solve CSP\n\n      // statement node \'Check CSP\'\n      fujaba__Success = csp.check();\n      if (fujaba__Success)\n      {\n         // story node \'collect elements to be translated\'\n         try \n         {\n            fujaba__Success = false; \n\n            // check object application is really bound\n            JavaSDM.ensure ( application != null );\n            // check object blipModel is really bound\n            JavaSDM.ensure ( blipModel != null );\n            // check object match is really bound\n            JavaSDM.ensure ( match != null );\n            // create object application__models__blipModel\n            application__models__blipModel = TGGRuntimeFactory.eINSTANCE.createEdge();\n\n            // assign attribute application__models__blipModel\n            application__models__blipModel.setName (\"models\");\n\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,application__models__blipModel,\"toBeTranslatedEdges\");\n\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,blipModel,\"toBeTranslatedElements\");\n\n            // create link\n            application__models__blipModel.setTrg( blipModel);\n\n\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(application__models__blipModel,application,\"src\");\n            fujaba__Success = true;\n         }\n         catch ( JavaSDMException fujaba__InternalException )\n         {\n            fujaba__Success = false;\n         }\n\n         // story node \'collect context elements\'\n         try \n         {\n            fujaba__Success = false; \n\n            // check object application is really bound\n            JavaSDM.ensure ( application != null );\n            // check object match is really bound\n            JavaSDM.ensure ( match != null );\n\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,application,\"contextNodes\");\n            fujaba__Success = true;\n         }\n         catch ( JavaSDMException fujaba__InternalException )\n         {\n            fujaba__Success = false;\n         }\n\n         // statement node \'register objects to match\'\n         match.registerObject(\"application\", application);\n         match.registerObject(\"blipModel\", blipModel);\n\n         return true;\n\n      }\n      else\n      {\n         return false;\n\n      }'"
	 * @generated
	 */
	boolean isAppropriate_BWD(Match match, BlipApplication application,
			BlipModel blipModel);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<activities:Activity xmi:version=\"2.0\" xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:TGGLanguage=\"http://www.moflon.org.TGGLanguage\" xmlns:activities=\"http://www.moflon.org.SDMLanguage.activities\" xmlns:csp=\"http://www.moflon.org.TGGLanguage.csp\" xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\" xmlns:expressions=\"http://www.moflon.org.SDMLanguage.expressions\" xmlns:patternExpressions=\"http://www.moflon.org.SDMLanguage.patterns.patternExpressions\">\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"core match\" outgoing=\"//@ownedActivityEdge.8\" incoming=\"//@ownedActivityEdge.2\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"MModelToModelRule\" cspSpec=\"&#xD;&#xA;&#x9;&#x9;eq(nameAttr.value, blipModel.name)&#xD;&#xA;&#x9;\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"application\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/resource/BlipLanguage/model/BlipLanguage.ecore#//BlipApplication\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"match.getObject(&quot;application&quot;)\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"blipModel\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/resource/BlipLanguage/model/BlipLanguage.ecore#//BlipModel\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"match.getObject(&quot;blipModel&quot;)\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"match\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Match\"/>\r\n      </objectVariable>\r\n      <correspondence href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      <source href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      <csp>\r\n        <constraints variables=\"//@ownedActivityNode.0/@storyPattern/@csp/@variables.0 //@ownedActivityNode.0/@storyPattern/@csp/@variables.1\" name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"csp:AttributeVariable\" type=\"String\" attribute=\"value\" objectVariable=\"nameAttr\"/>\r\n        <variables xsi:type=\"csp:AttributeVariable\" type=\"String\" attribute=\"name\" objectVariable=\"blipModel\"/>\r\n      </csp>\r\n      <target href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"prepare return value\" outgoing=\"//@ownedActivityEdge.2\" incoming=\"//@ownedActivityEdge.4\">\r\n    <storyPattern>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.1\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsApplicableRuleResult\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//RuleResult/success\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"false\"/>\r\n        </attributeAssignment>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//RuleResult/rule\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;MModelToModelRule&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable name=\"performOperation\" incomingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.0 //@ownedActivityNode.1/@storyPattern/@linkVariable.1\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EOperation\"/>\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"expressions:ComparisonExpression\" operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;perform_BWD&quot;\"/>\r\n            <leftExpression xsi:type=\"patternExpressions:AttributeValueExpression\" object=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.1\">\r\n              <attribute href=\"http://www.eclipse.org/emf/2002/Ecore#//ENamedElement/name\"/>\r\n            </leftExpression>\r\n          </constraintExpression>\r\n        </constraint>\r\n      </objectVariable>\r\n      <objectVariable name=\"eClass\" outgoingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EClass\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"this.eClass()\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"eOperations\" target=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.1\" source=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.2\"/>\r\n      <linkVariable name=\"performOperation\" target=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.1\" source=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StopNode\" incoming=\"//@ownedActivityEdge.5\">\r\n    <returnValue xsi:type=\"patternExpressions:ObjectVariableExpression\" object=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.0\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"find context\" outgoing=\"//@ownedActivityEdge.5 //@ownedActivityEdge.7\" incoming=\"//@ownedActivityEdge.0 //@ownedActivityEdge.3 //@ownedActivityEdge.8\" forEach=\"true\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"MModelToModelRule\" cspSpec=\"&#xD;&#xA;&#x9;&#x9;eq(nameAttr.value, blipModel.name)&#xD;&#xA;&#x9;\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"applicationNode\" incomingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.0\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Node\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"mApplicationToApplication\" outgoingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.0 //@ownedActivityNode.3/@storyPattern/@linkVariable.1\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.BlipTGG#//MApplicationToApplication\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"application\" incomingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.1\" outgoingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.2\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/resource/BlipLanguage/model/BlipLanguage.ecore#//BlipApplication\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"blipModel\" incomingLink=\"//@ownedActivityNode.3/@storyPattern/@linkVariable.2\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/resource/BlipLanguage/model/BlipLanguage.ecore#//BlipModel\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"isApplicableMatch\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsApplicableMatch\"/>\r\n      </objectVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"source\" target=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.1\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      </linkVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"target\" target=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.2\" source=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.1\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      </linkVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"models\" target=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.3\" source=\"//@ownedActivityNode.3/@storyPattern/@objectVariable.2\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n      </linkVariable>\r\n      <correspondence href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      <source href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      <csp>\r\n        <constraints variables=\"//@ownedActivityNode.3/@storyPattern/@csp/@variables.0 //@ownedActivityNode.3/@storyPattern/@csp/@variables.1\" name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"csp:AttributeVariable\" type=\"String\" attribute=\"value\" objectVariable=\"nameAttr\"/>\r\n        <variables xsi:type=\"csp:AttributeVariable\" type=\"String\" attribute=\"name\" objectVariable=\"blipModel\"/>\r\n      </csp>\r\n      <target href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"add match to rule result\" outgoing=\"//@ownedActivityEdge.3\" incoming=\"//@ownedActivityEdge.6\">\r\n    <storyPattern>\r\n      <objectVariable name=\"isApplicableMatch\" incomingLink=\"//@ownedActivityNode.4/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsApplicableMatch\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.4/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsApplicableRuleResult\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//RuleResult/success\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"true\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <linkVariable name=\"isApplicableMatch\" target=\"//@ownedActivityNode.4/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.4/@storyPattern/@objectVariable.1\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StatementNode\" name=\"check CSP\" outgoing=\"//@ownedActivityEdge.0 //@ownedActivityEdge.6\" incoming=\"//@ownedActivityEdge.1\">\r\n    <statementExpression xsi:type=\"expressions:LiteralExpression\" value=\"csp.check();\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StatementNode\" name=\"solve CSP\" outgoing=\"//@ownedActivityEdge.1\" incoming=\"//@ownedActivityEdge.7\">\r\n    <statementExpression xsi:type=\"expressions:LiteralExpression\" value=\"// Create CSP&#xD;&#xA;CSP csp = CspFactory.eINSTANCE.createCSP();&#xD;&#xA;isApplicableMatch.getAttributeInfo().add(csp);&#xD;&#xA;&#xD;&#xA;// Create literals&#xD;&#xA;&#xD;&#xA;// Create attribute variables&#xD;&#xA;Variable&lt;String> var_blipModel_name = CspFactory.eINSTANCE.createVariable(&quot;blipModel.name&quot;, true, csp);&#xD;&#xA;var_blipModel_name.setValue(blipModel.getName());&#xD;&#xA;&#xD;&#xA;// Create explicit parameters&#xD;&#xA;&#xD;&#xA;// Create unbound variables&#xD;&#xA;Variable&lt;String> var_nameAttr_value = CspFactory.eINSTANCE.createVariable(&quot;nameAttr.value&quot;, csp);&#xD;&#xA;&#xD;&#xA;// Create constraints&#xD;&#xA;Eq&lt;String> eq = new Eq&lt;String>();&#xD;&#xA;&#xD;&#xA;csp.getConstraints().add(eq);&#xD;&#xA;&#xD;&#xA;// Solve CSP&#xD;&#xA;eq.setRuleName(&quot;&quot;);&#xD;&#xA;eq.solve(var_nameAttr_value,var_blipModel_name);&#xD;&#xA;&#xD;&#xA;// Snapshot pattern match on which CSP is solved&#xD;&#xA;isApplicableMatch.registerObject(&quot;applicationNode&quot;,applicationNode);&#xD;&#xA;isApplicableMatch.registerObject(&quot;mApplicationToApplication&quot;,mApplicationToApplication);&#xD;&#xA;isApplicableMatch.registerObject(&quot;application&quot;,application);&#xD;&#xA;isApplicableMatch.registerObject(&quot;blipModel&quot;,blipModel);&#xD;&#xA;\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StartNode\" outgoing=\"//@ownedActivityEdge.4\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.5\" target=\"//@ownedActivityNode.3\" guard=\"FAILURE\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.6\" target=\"//@ownedActivityNode.5\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.1\" target=\"//@ownedActivityNode.0\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.4\" target=\"//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.7\" target=\"//@ownedActivityNode.1\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.3\" target=\"//@ownedActivityNode.2\" guard=\"END\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.5\" target=\"//@ownedActivityNode.4\" guard=\"SUCCESS\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.3\" target=\"//@ownedActivityNode.6\" guard=\"EACH_TIME\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.0\" target=\"//@ownedActivityNode.3\"/>\r\n</activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      Object _TmpObject = null;\n      EClass eClass = null;\n      Iterator fujaba__IterEClassToPerformOperation = null;\n      EOperation performOperation = null;\n      IsApplicableRuleResult ruleresult = null;\n      BlipApplication application = null;\n      BlipModel blipModel = null;\n      IsApplicableMatch isApplicableMatch = null;\n      Node applicationNode = null;\n      Iterator fujaba__IterApplicationToMApplicationToApplication = null;\n      MApplicationToApplication mApplicationToApplication = null;\n\n      // story node \'prepare return value\'\n      try \n      {\n         fujaba__Success = false; \n\n         _TmpObject = (this.eClass());\n\n         // ensure correct type and really bound of object eClass\n         JavaSDM.ensure ( _TmpObject instanceof EClass );\n         eClass = (EClass) _TmpObject;\n         // iterate to-many link eOperations from eClass to performOperation\n         fujaba__Success = false;\n\n         fujaba__IterEClassToPerformOperation = eClass.getEOperations().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterEClassToPerformOperation.hasNext () )\n         {\n            try\n            {\n               performOperation = (EOperation) fujaba__IterEClassToPerformOperation.next ();\n\n               // check object performOperation is really bound\n               JavaSDM.ensure ( performOperation != null );\n               // attribute condition\n               JavaSDM.ensure ( JavaSDM.stringCompare (performOperation.getName (), \"perform_BWD\") == 0 );\n\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // create object ruleresult\n         ruleresult = TGGRuntimeFactory.eINSTANCE.createIsApplicableRuleResult();\n\n         // assign attribute ruleresult\n         ruleresult.setSuccess (false);\n         // assign attribute ruleresult\n         ruleresult.setRule (\"MModelToModelRule\");\n\n         // create link\n         org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleresult,performOperation,\"performOperation\");\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story node \'core match\'\n      try \n      {\n         fujaba__Success = false; \n\n         _TmpObject = (match.getObject(\"application\"));\n\n         // ensure correct type and really bound of object application\n         JavaSDM.ensure ( _TmpObject instanceof BlipApplication );\n         application = (BlipApplication) _TmpObject;\n         _TmpObject = (match.getObject(\"blipModel\"));\n\n         // ensure correct type and really bound of object blipModel\n         JavaSDM.ensure ( _TmpObject instanceof BlipModel );\n         blipModel = (BlipModel) _TmpObject;\n         // check object match is really bound\n         JavaSDM.ensure ( match != null );\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story node \'find context\'\n      try \n      {\n         fujaba__Success = false; \n\n         // check object application is really bound\n         JavaSDM.ensure ( application != null );\n         // check object blipModel is really bound\n         JavaSDM.ensure ( blipModel != null );\n         // check link models from blipModel to application\n         JavaSDM.ensure (application.equals (blipModel.eContainer()\n         ));\n\n         // iterate to-many link target from application to mApplicationToApplication\n         fujaba__Success = false;\n\n         fujaba__IterApplicationToMApplicationToApplication = new ArrayList(org.moflon.util.eMoflonEMFUtil.getOppositeReference(application,MApplicationToApplication.class,\"target\")).iterator ();\n\n         while ( fujaba__IterApplicationToMApplicationToApplication.hasNext () )\n         {\n            try\n            {\n               mApplicationToApplication = (MApplicationToApplication) fujaba__IterApplicationToMApplicationToApplication.next ();\n\n               // check object mApplicationToApplication is really bound\n               JavaSDM.ensure ( mApplicationToApplication != null );\n               // bind object\n               applicationNode = mApplicationToApplication.getSource ();\n\n               // check object applicationNode is really bound\n               JavaSDM.ensure ( applicationNode != null );\n\n               // create object isApplicableMatch\n               isApplicableMatch = TGGRuntimeFactory.eINSTANCE.createIsApplicableMatch();\n\n               // statement node \'solve CSP\'\n               // Create CSP\n               CSP csp = CspFactory.eINSTANCE.createCSP();\n               isApplicableMatch.getAttributeInfo().add(csp);\n\n               // Create literals\n\n               // Create attribute variables\n               Variable<String> var_blipModel_name = CspFactory.eINSTANCE.createVariable(\"blipModel.name\", true, csp);\n               var_blipModel_name.setValue(blipModel.getName());\n\n               // Create explicit parameters\n\n               // Create unbound variables\n               Variable<String> var_nameAttr_value = CspFactory.eINSTANCE.createVariable(\"nameAttr.value\", csp);\n\n               // Create constraints\n               Eq<String> eq = new Eq<String>();\n\n               csp.getConstraints().add(eq);\n\n               // Solve CSP\n               eq.setRuleName(\"\");\n               eq.solve(var_nameAttr_value,var_blipModel_name);\n\n               // Snapshot pattern match on which CSP is solved\n               isApplicableMatch.registerObject(\"applicationNode\",applicationNode);\n               isApplicableMatch.registerObject(\"mApplicationToApplication\",mApplicationToApplication);\n               isApplicableMatch.registerObject(\"application\",application);\n               isApplicableMatch.registerObject(\"blipModel\",blipModel);\n\n               // statement node \'check CSP\'\n               fujaba__Success = csp.check();\n               if (fujaba__Success)\n               {\n                  // story node \'add match to rule result\'\n                  try \n                  {\n                     fujaba__Success = false; \n\n                     // check object isApplicableMatch is really bound\n                     JavaSDM.ensure ( isApplicableMatch != null );\n                     // check object ruleresult is really bound\n                     JavaSDM.ensure ( ruleresult != null );\n                     // assign attribute ruleresult\n                     ruleresult.setSuccess (true);\n\n                     // create link\n                     ruleresult.getIsApplicableMatch().add(isApplicableMatch);\n\n                     fujaba__Success = true;\n                  }\n                  catch ( JavaSDMException fujaba__InternalException )\n                  {\n                     fujaba__Success = false;\n                  }\n\n\n               }\n               else\n               {\n\n               }\n\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      return ruleresult;'"
	 * @generated
	 */
	IsApplicableRuleResult isApplicable_BWD(Match match);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<activities:Activity xmi:version=\"2.0\" xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:TGGLanguage=\"http://www.moflon.org.TGGLanguage\" xmlns:activities=\"http://www.moflon.org.SDMLanguage.activities\" xmlns:callExpressions=\"http://www.moflon.org.SDMLanguage.calls.callExpressions\" xmlns:csp=\"http://www.moflon.org.TGGLanguage.csp\" xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\" xmlns:expressions=\"http://www.moflon.org.SDMLanguage.expressions\" xmlns:patternExpressions=\"http://www.moflon.org.SDMLanguage.patterns.patternExpressions\">\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"prepare return value\" outgoing=\"//@ownedActivityEdge.4\" incoming=\"//@ownedActivityEdge.0\">\r\n    <storyPattern>\r\n      <objectVariable name=\"performOperation\" incomingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.1 //@ownedActivityNode.0/@storyPattern/@linkVariable.0\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EOperation\"/>\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"expressions:ComparisonExpression\" operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;isApplicable_FWD&quot;\"/>\r\n            <leftExpression xsi:type=\"patternExpressions:AttributeValueExpression\" object=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\">\r\n              <attribute href=\"http://www.eclipse.org/emf/2002/Ecore#//ENamedElement/name\"/>\r\n            </leftExpression>\r\n          </constraintExpression>\r\n        </constraint>\r\n      </objectVariable>\r\n      <objectVariable name=\"this\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.0\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsAppropriateRuleResult\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//RuleResult/success\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"false\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable name=\"eClass\" outgoingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.1\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EClass\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"this.eClass()\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"performOperation\" target=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"eOperations\" target=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.3\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"test core match\" outgoing=\"//@ownedActivityEdge.3 //@ownedActivityEdge.1\" incoming=\"//@ownedActivityEdge.4 //@ownedActivityEdge.5 //@ownedActivityEdge.7\" forEach=\"true\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"MModelToModelRule\" cspSpec=\"&#xD;&#xA;&#x9;&#x9;eq(nameAttr.value, blipModel.name)&#xD;&#xA;&#x9;\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"applicationNode\" incomingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Node\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"blipModelNode\" outgoingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.0 //@ownedActivityNode.1/@storyPattern/@linkVariable.1\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Node\"/>\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"expressions:ComparisonExpression\" operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;Model&quot;\"/>\r\n            <leftExpression xsi:type=\"patternExpressions:AttributeValueExpression\">\r\n              <attribute href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//TreeElement/name\"/>\r\n            </leftExpression>\r\n          </constraintExpression>\r\n        </constraint>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"nameAttr\" incomingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.1\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Attribute\"/>\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"expressions:ComparisonExpression\" operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;name&quot;\"/>\r\n            <leftExpression xsi:type=\"patternExpressions:AttributeValueExpression\">\r\n              <attribute href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//TreeElement/name\"/>\r\n            </leftExpression>\r\n          </constraintExpression>\r\n        </constraint>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsAppropriateRuleResult\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"match\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Match\"/>\r\n      </objectVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"parentNode\" target=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.1\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </linkVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"attribute\" target=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.2\" source=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.1\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </linkVariable>\r\n      <correspondence href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      <source href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      <csp>\r\n        <constraints variables=\"//@ownedActivityNode.1/@storyPattern/@csp/@variables.0 //@ownedActivityNode.1/@storyPattern/@csp/@variables.1\" name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"csp:AttributeVariable\" type=\"String\" attribute=\"value\" objectVariable=\"nameAttr\"/>\r\n        <variables xsi:type=\"csp:AttributeVariable\" type=\"String\" attribute=\"name\" objectVariable=\"blipModel\"/>\r\n      </csp>\r\n      <target href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"set success\" outgoing=\"//@ownedActivityEdge.2\" incoming=\"//@ownedActivityEdge.3\">\r\n    <storyPattern>\r\n      <objectVariable name=\"match\" incomingLink=\"//@ownedActivityNode.2/@storyPattern/@linkVariable.0\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Match\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.2/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsAppropriateRuleResult\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//RuleResult/success\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"true\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <linkVariable name=\"matches\" target=\"//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.2/@storyPattern/@objectVariable.1\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StopNode\" incoming=\"//@ownedActivityEdge.2\">\r\n    <returnValue xsi:type=\"patternExpressions:ObjectVariableExpression\" object=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.2\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StartNode\" outgoing=\"//@ownedActivityEdge.0\"/>\r\n  <ownedActivityNode xsi:type=\"activities:StatementNode\" name=\"bookkeeping with generic isAppropriate method\" outgoing=\"//@ownedActivityEdge.5 //@ownedActivityEdge.6\" incoming=\"//@ownedActivityEdge.1\">\r\n    <statementExpression xsi:type=\"callExpressions:MethodCallExpression\">\r\n      <ownedParameterBindings>\r\n        <valueExpression xsi:type=\"expressions:TextualExpression\" expressionText=\"match\"/>\r\n        <parameter href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_FWD/match\"/>\r\n      </ownedParameterBindings>\r\n      <ownedParameterBindings>\r\n        <valueExpression xsi:type=\"expressions:TextualExpression\" expressionText=\"applicationNode\"/>\r\n        <parameter href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_FWD/applicationNode\"/>\r\n      </ownedParameterBindings>\r\n      <ownedParameterBindings>\r\n        <valueExpression xsi:type=\"expressions:TextualExpression\" expressionText=\"blipModelNode\"/>\r\n        <parameter href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_FWD/blipModelNode\"/>\r\n      </ownedParameterBindings>\r\n      <ownedParameterBindings>\r\n        <valueExpression xsi:type=\"expressions:TextualExpression\" expressionText=\"nameAttr\"/>\r\n        <parameter href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_FWD/nameAttr\"/>\r\n      </ownedParameterBindings>\r\n      <callee href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_FWD\"/>\r\n      <target xsi:type=\"patternExpressions:ObjectVariableExpression\" object=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.1\"/>\r\n    </statementExpression>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"Add match to rule result\" outgoing=\"//@ownedActivityEdge.7\" incoming=\"//@ownedActivityEdge.6\">\r\n    <storyPattern>\r\n      <objectVariable name=\"match\" incomingLink=\"//@ownedActivityNode.6/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Match\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.6/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsAppropriateRuleResult\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"matches\" target=\"//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.6/@storyPattern/@objectVariable.1\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.4\" target=\"//@ownedActivityNode.0\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.1\" target=\"//@ownedActivityNode.5\" guard=\"EACH_TIME\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.2\" target=\"//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.1\" target=\"//@ownedActivityNode.2\" guard=\"END\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.0\" target=\"//@ownedActivityNode.1\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.5\" target=\"//@ownedActivityNode.1\" guard=\"FAILURE\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.5\" target=\"//@ownedActivityNode.6\" guard=\"SUCCESS\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.6\" target=\"//@ownedActivityNode.1\"/>\r\n</activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      Object _TmpObject = null;\n      EClass eClass = null;\n      Iterator fujaba__IterEClassToPerformOperation = null;\n      EOperation performOperation = null;\n      IsAppropriateRuleResult ruleresult = null;\n      Match match = null;\n      Iterator fujaba__IterBlipModelNodeToNameAttr = null;\n      Attribute nameAttr = null;\n      Iterator fujaba__IterApplicationNodeToBlipModelNode = null;\n      Node blipModelNode = null;\n      Iterator fujaba__IterRuleresultToMatch = null;\n\n      // story node \'prepare return value\'\n      try \n      {\n         fujaba__Success = false; \n\n         _TmpObject = (this.eClass());\n\n         // ensure correct type and really bound of object eClass\n         JavaSDM.ensure ( _TmpObject instanceof EClass );\n         eClass = (EClass) _TmpObject;\n         // iterate to-many link eOperations from eClass to performOperation\n         fujaba__Success = false;\n\n         fujaba__IterEClassToPerformOperation = eClass.getEOperations().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterEClassToPerformOperation.hasNext () )\n         {\n            try\n            {\n               performOperation = (EOperation) fujaba__IterEClassToPerformOperation.next ();\n\n               // check object performOperation is really bound\n               JavaSDM.ensure ( performOperation != null );\n               // attribute condition\n               JavaSDM.ensure ( JavaSDM.stringCompare (performOperation.getName (), \"isApplicable_FWD\") == 0 );\n\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // create object ruleresult\n         ruleresult = TGGRuntimeFactory.eINSTANCE.createIsAppropriateRuleResult();\n\n         // assign attribute ruleresult\n         ruleresult.setSuccess (false);\n\n         // create link\n         ruleresult.setPerformOperation( performOperation);\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story node \'test core match\'\n      try \n      {\n         fujaba__Success = false; \n\n         // check object applicationNode is really bound\n         JavaSDM.ensure ( applicationNode != null );\n         // check object ruleresult is really bound\n         JavaSDM.ensure ( ruleresult != null );\n         // iterate to-many link children from applicationNode to blipModelNode\n         fujaba__Success = false;\n\n         fujaba__IterApplicationNodeToBlipModelNode = new ArrayList(applicationNode.getChildren()).iterator ();\n\n         while ( fujaba__IterApplicationNodeToBlipModelNode.hasNext () )\n         {\n            try\n            {\n               _TmpObject =  fujaba__IterApplicationNodeToBlipModelNode.next ();\n\n               // ensure correct type and really bound of object blipModelNode\n               JavaSDM.ensure ( _TmpObject instanceof Node );\n               blipModelNode = (Node) _TmpObject;\n               // check isomorphic binding between objects blipModelNode and applicationNode \n               JavaSDM.ensure ( !blipModelNode.equals (applicationNode) );\n\n               // iterate to-many link attribute from blipModelNode to nameAttr\n               fujaba__Success = false;\n\n               fujaba__IterBlipModelNodeToNameAttr = new ArrayList(blipModelNode.getAttribute()).iterator ();\n\n               while ( fujaba__IterBlipModelNodeToNameAttr.hasNext () )\n               {\n                  try\n                  {\n                     nameAttr = (Attribute) fujaba__IterBlipModelNodeToNameAttr.next ();\n\n                     // check object nameAttr is really bound\n                     JavaSDM.ensure ( nameAttr != null );\n                     // attribute condition\n                     JavaSDM.ensure ( JavaSDM.stringCompare (blipModelNode.getName (), \"Model\") == 0 );\n\n                     // attribute condition\n                     JavaSDM.ensure ( JavaSDM.stringCompare (nameAttr.getName (), \"name\") == 0 );\n\n                     // create object match\n                     match = TGGRuntimeFactory.eINSTANCE.createMatch();\n\n                     // statement node \'bookkeeping with generic isAppropriate method\'\n                     fujaba__Success = this.isAppropriate_FWD(match,applicationNode,blipModelNode,nameAttr);\n                     if (fujaba__Success)\n                     {\n                        // story node \'Add match to rule result\'\n                        try \n                        {\n                           fujaba__Success = false; \n\n                           // check object match is really bound\n                           JavaSDM.ensure ( match != null );\n                           // check object ruleresult is really bound\n                           JavaSDM.ensure ( ruleresult != null );\n\n                           // create link\n                           ruleresult.getMatches().add(match);\n\n                           fujaba__Success = true;\n                        }\n                        catch ( JavaSDMException fujaba__InternalException )\n                        {\n                           fujaba__Success = false;\n                        }\n\n\n                     }\n                     else\n                     {\n\n                     }\n\n                     fujaba__Success = true;\n                  }\n                  catch ( JavaSDMException fujaba__InternalException )\n                  {\n                     fujaba__Success = false;\n                  }\n               }\n               JavaSDM.ensure (fujaba__Success);\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story node \'set success\'\n      try \n      {\n         fujaba__Success = false; \n\n         // check object ruleresult is really bound\n         JavaSDM.ensure ( ruleresult != null );\n         // iterate to-many link matches from ruleresult to match\n         fujaba__Success = false;\n\n         fujaba__IterRuleresultToMatch = ruleresult.getMatches().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterRuleresultToMatch.hasNext () )\n         {\n            try\n            {\n               match = (Match) fujaba__IterRuleresultToMatch.next ();\n\n               // check object match is really bound\n               JavaSDM.ensure ( match != null );\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // assign attribute ruleresult\n         ruleresult.setSuccess (true);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      return ruleresult;'"
	 * @generated
	 */
	IsAppropriateRuleResult isAppropriate_FWD_Node_3(Node applicationNode);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<activities:Activity xmi:version=\"2.0\" xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:TGGLanguage=\"http://www.moflon.org.TGGLanguage\" xmlns:activities=\"http://www.moflon.org.SDMLanguage.activities\" xmlns:callExpressions=\"http://www.moflon.org.SDMLanguage.calls.callExpressions\" xmlns:csp=\"http://www.moflon.org.TGGLanguage.csp\" xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\" xmlns:expressions=\"http://www.moflon.org.SDMLanguage.expressions\" xmlns:patternExpressions=\"http://www.moflon.org.SDMLanguage.patterns.patternExpressions\">\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"prepare return value\" outgoing=\"//@ownedActivityEdge.4\" incoming=\"//@ownedActivityEdge.0\">\r\n    <storyPattern>\r\n      <objectVariable name=\"performOperation\" incomingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.1 //@ownedActivityNode.0/@storyPattern/@linkVariable.0\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EOperation\"/>\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"expressions:ComparisonExpression\" operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;isApplicable_FWD&quot;\"/>\r\n            <leftExpression xsi:type=\"patternExpressions:AttributeValueExpression\" object=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\">\r\n              <attribute href=\"http://www.eclipse.org/emf/2002/Ecore#//ENamedElement/name\"/>\r\n            </leftExpression>\r\n          </constraintExpression>\r\n        </constraint>\r\n      </objectVariable>\r\n      <objectVariable name=\"this\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.0\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsAppropriateRuleResult\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//RuleResult/success\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"false\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable name=\"eClass\" outgoingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.1\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EClass\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"this.eClass()\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"performOperation\" target=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"eOperations\" target=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.3\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"test core match\" outgoing=\"//@ownedActivityEdge.3 //@ownedActivityEdge.1\" incoming=\"//@ownedActivityEdge.4 //@ownedActivityEdge.5 //@ownedActivityEdge.7\" forEach=\"true\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"MModelToModelRule\" cspSpec=\"&#xD;&#xA;&#x9;&#x9;eq(nameAttr.value, blipModel.name)&#xD;&#xA;&#x9;\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"applicationNode\" incomingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.0\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Node\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"blipModelNode\" outgoingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.0 //@ownedActivityNode.1/@storyPattern/@linkVariable.1\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Node\"/>\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"expressions:ComparisonExpression\" operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;Model&quot;\"/>\r\n            <leftExpression xsi:type=\"patternExpressions:AttributeValueExpression\">\r\n              <attribute href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//TreeElement/name\"/>\r\n            </leftExpression>\r\n          </constraintExpression>\r\n        </constraint>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"nameAttr\" incomingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.1\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Attribute\"/>\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"expressions:ComparisonExpression\" operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;name&quot;\"/>\r\n            <leftExpression xsi:type=\"patternExpressions:AttributeValueExpression\">\r\n              <attribute href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//TreeElement/name\"/>\r\n            </leftExpression>\r\n          </constraintExpression>\r\n        </constraint>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsAppropriateRuleResult\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"match\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Match\"/>\r\n      </objectVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"parentNode\" target=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.1\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </linkVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"attribute\" target=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.2\" source=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.1\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </linkVariable>\r\n      <correspondence href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      <source href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      <csp>\r\n        <constraints variables=\"//@ownedActivityNode.1/@storyPattern/@csp/@variables.0 //@ownedActivityNode.1/@storyPattern/@csp/@variables.1\" name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"csp:AttributeVariable\" type=\"String\" attribute=\"value\" objectVariable=\"nameAttr\"/>\r\n        <variables xsi:type=\"csp:AttributeVariable\" type=\"String\" attribute=\"name\" objectVariable=\"blipModel\"/>\r\n      </csp>\r\n      <target href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"set success\" outgoing=\"//@ownedActivityEdge.2\" incoming=\"//@ownedActivityEdge.3\">\r\n    <storyPattern>\r\n      <objectVariable name=\"match\" incomingLink=\"//@ownedActivityNode.2/@storyPattern/@linkVariable.0\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Match\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.2/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsAppropriateRuleResult\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//RuleResult/success\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"true\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <linkVariable name=\"matches\" target=\"//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.2/@storyPattern/@objectVariable.1\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StopNode\" incoming=\"//@ownedActivityEdge.2\">\r\n    <returnValue xsi:type=\"patternExpressions:ObjectVariableExpression\" object=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.2\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StartNode\" outgoing=\"//@ownedActivityEdge.0\"/>\r\n  <ownedActivityNode xsi:type=\"activities:StatementNode\" name=\"bookkeeping with generic isAppropriate method\" outgoing=\"//@ownedActivityEdge.5 //@ownedActivityEdge.6\" incoming=\"//@ownedActivityEdge.1\">\r\n    <statementExpression xsi:type=\"callExpressions:MethodCallExpression\">\r\n      <ownedParameterBindings>\r\n        <valueExpression xsi:type=\"expressions:TextualExpression\" expressionText=\"match\"/>\r\n        <parameter href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_FWD/match\"/>\r\n      </ownedParameterBindings>\r\n      <ownedParameterBindings>\r\n        <valueExpression xsi:type=\"expressions:TextualExpression\" expressionText=\"applicationNode\"/>\r\n        <parameter href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_FWD/applicationNode\"/>\r\n      </ownedParameterBindings>\r\n      <ownedParameterBindings>\r\n        <valueExpression xsi:type=\"expressions:TextualExpression\" expressionText=\"blipModelNode\"/>\r\n        <parameter href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_FWD/blipModelNode\"/>\r\n      </ownedParameterBindings>\r\n      <ownedParameterBindings>\r\n        <valueExpression xsi:type=\"expressions:TextualExpression\" expressionText=\"nameAttr\"/>\r\n        <parameter href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_FWD/nameAttr\"/>\r\n      </ownedParameterBindings>\r\n      <callee href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_FWD\"/>\r\n      <target xsi:type=\"patternExpressions:ObjectVariableExpression\" object=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.1\"/>\r\n    </statementExpression>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"Add match to rule result\" outgoing=\"//@ownedActivityEdge.7\" incoming=\"//@ownedActivityEdge.6\">\r\n    <storyPattern>\r\n      <objectVariable name=\"match\" incomingLink=\"//@ownedActivityNode.6/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Match\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.6/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsAppropriateRuleResult\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"matches\" target=\"//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.6/@storyPattern/@objectVariable.1\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.4\" target=\"//@ownedActivityNode.0\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.1\" target=\"//@ownedActivityNode.5\" guard=\"EACH_TIME\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.2\" target=\"//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.1\" target=\"//@ownedActivityNode.2\" guard=\"END\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.0\" target=\"//@ownedActivityNode.1\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.5\" target=\"//@ownedActivityNode.1\" guard=\"FAILURE\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.5\" target=\"//@ownedActivityNode.6\" guard=\"SUCCESS\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.6\" target=\"//@ownedActivityNode.1\"/>\r\n</activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      Object _TmpObject = null;\n      EClass eClass = null;\n      Iterator fujaba__IterEClassToPerformOperation = null;\n      EOperation performOperation = null;\n      IsAppropriateRuleResult ruleresult = null;\n      Match match = null;\n      Iterator fujaba__IterBlipModelNodeToNameAttr = null;\n      Attribute nameAttr = null;\n      Node applicationNode = null;\n      Iterator fujaba__IterRuleresultToMatch = null;\n\n      // story node \'prepare return value\'\n      try \n      {\n         fujaba__Success = false; \n\n         _TmpObject = (this.eClass());\n\n         // ensure correct type and really bound of object eClass\n         JavaSDM.ensure ( _TmpObject instanceof EClass );\n         eClass = (EClass) _TmpObject;\n         // iterate to-many link eOperations from eClass to performOperation\n         fujaba__Success = false;\n\n         fujaba__IterEClassToPerformOperation = eClass.getEOperations().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterEClassToPerformOperation.hasNext () )\n         {\n            try\n            {\n               performOperation = (EOperation) fujaba__IterEClassToPerformOperation.next ();\n\n               // check object performOperation is really bound\n               JavaSDM.ensure ( performOperation != null );\n               // attribute condition\n               JavaSDM.ensure ( JavaSDM.stringCompare (performOperation.getName (), \"isApplicable_FWD\") == 0 );\n\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // create object ruleresult\n         ruleresult = TGGRuntimeFactory.eINSTANCE.createIsAppropriateRuleResult();\n\n         // assign attribute ruleresult\n         ruleresult.setSuccess (false);\n\n         // create link\n         ruleresult.setPerformOperation( performOperation);\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story node \'test core match\'\n      try \n      {\n         fujaba__Success = false; \n\n         // check object blipModelNode is really bound\n         JavaSDM.ensure ( blipModelNode != null );\n         // check object ruleresult is really bound\n         JavaSDM.ensure ( ruleresult != null );\n         // bind object\n         applicationNode = blipModelNode.getParentNode ();\n\n         // check object applicationNode is really bound\n         JavaSDM.ensure ( applicationNode != null );\n\n         // check isomorphic binding between objects blipModelNode and applicationNode \n         JavaSDM.ensure ( !blipModelNode.equals (applicationNode) );\n\n         // iterate to-many link attribute from blipModelNode to nameAttr\n         fujaba__Success = false;\n\n         fujaba__IterBlipModelNodeToNameAttr = new ArrayList(blipModelNode.getAttribute()).iterator ();\n\n         while ( fujaba__IterBlipModelNodeToNameAttr.hasNext () )\n         {\n            try\n            {\n               nameAttr = (Attribute) fujaba__IterBlipModelNodeToNameAttr.next ();\n\n               // check object nameAttr is really bound\n               JavaSDM.ensure ( nameAttr != null );\n               // attribute condition\n               JavaSDM.ensure ( JavaSDM.stringCompare (blipModelNode.getName (), \"Model\") == 0 );\n\n               // attribute condition\n               JavaSDM.ensure ( JavaSDM.stringCompare (nameAttr.getName (), \"name\") == 0 );\n\n               // create object match\n               match = TGGRuntimeFactory.eINSTANCE.createMatch();\n\n               // statement node \'bookkeeping with generic isAppropriate method\'\n               fujaba__Success = this.isAppropriate_FWD(match,applicationNode,blipModelNode,nameAttr);\n               if (fujaba__Success)\n               {\n                  // story node \'Add match to rule result\'\n                  try \n                  {\n                     fujaba__Success = false; \n\n                     // check object match is really bound\n                     JavaSDM.ensure ( match != null );\n                     // check object ruleresult is really bound\n                     JavaSDM.ensure ( ruleresult != null );\n\n                     // create link\n                     ruleresult.getMatches().add(match);\n\n                     fujaba__Success = true;\n                  }\n                  catch ( JavaSDMException fujaba__InternalException )\n                  {\n                     fujaba__Success = false;\n                  }\n\n\n               }\n               else\n               {\n\n               }\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story node \'set success\'\n      try \n      {\n         fujaba__Success = false; \n\n         // check object ruleresult is really bound\n         JavaSDM.ensure ( ruleresult != null );\n         // iterate to-many link matches from ruleresult to match\n         fujaba__Success = false;\n\n         fujaba__IterRuleresultToMatch = ruleresult.getMatches().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterRuleresultToMatch.hasNext () )\n         {\n            try\n            {\n               match = (Match) fujaba__IterRuleresultToMatch.next ();\n\n               // check object match is really bound\n               JavaSDM.ensure ( match != null );\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // assign attribute ruleresult\n         ruleresult.setSuccess (true);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      return ruleresult;'"
	 * @generated
	 */
	IsAppropriateRuleResult isAppropriate_FWD_Node_4(Node blipModelNode);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<activities:Activity xmi:version=\"2.0\" xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:TGGLanguage=\"http://www.moflon.org.TGGLanguage\" xmlns:activities=\"http://www.moflon.org.SDMLanguage.activities\" xmlns:callExpressions=\"http://www.moflon.org.SDMLanguage.calls.callExpressions\" xmlns:csp=\"http://www.moflon.org.TGGLanguage.csp\" xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\" xmlns:expressions=\"http://www.moflon.org.SDMLanguage.expressions\" xmlns:patternExpressions=\"http://www.moflon.org.SDMLanguage.patterns.patternExpressions\">\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"prepare return value\" outgoing=\"//@ownedActivityEdge.4\" incoming=\"//@ownedActivityEdge.0\">\r\n    <storyPattern>\r\n      <objectVariable name=\"performOperation\" incomingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.1 //@ownedActivityNode.0/@storyPattern/@linkVariable.0\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EOperation\"/>\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"expressions:ComparisonExpression\" operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;isApplicable_FWD&quot;\"/>\r\n            <leftExpression xsi:type=\"patternExpressions:AttributeValueExpression\" object=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\">\r\n              <attribute href=\"http://www.eclipse.org/emf/2002/Ecore#//ENamedElement/name\"/>\r\n            </leftExpression>\r\n          </constraintExpression>\r\n        </constraint>\r\n      </objectVariable>\r\n      <objectVariable name=\"this\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.0\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsAppropriateRuleResult\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//RuleResult/success\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"false\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable name=\"eClass\" outgoingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.1\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EClass\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"this.eClass()\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"performOperation\" target=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"eOperations\" target=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.3\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"test core match\" outgoing=\"//@ownedActivityEdge.3 //@ownedActivityEdge.1\" incoming=\"//@ownedActivityEdge.4 //@ownedActivityEdge.5 //@ownedActivityEdge.7\" forEach=\"true\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"MModelToModelRule\" cspSpec=\"&#xD;&#xA;&#x9;&#x9;eq(nameAttr.value, blipModel.name)&#xD;&#xA;&#x9;\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"applicationNode\" incomingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.0\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Node\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"blipModelNode\" outgoingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.0 //@ownedActivityNode.1/@storyPattern/@linkVariable.1\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Node\"/>\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"expressions:ComparisonExpression\" operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;Model&quot;\"/>\r\n            <leftExpression xsi:type=\"patternExpressions:AttributeValueExpression\">\r\n              <attribute href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//TreeElement/name\"/>\r\n            </leftExpression>\r\n          </constraintExpression>\r\n        </constraint>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"nameAttr\" incomingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.1\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//Attribute\"/>\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"expressions:ComparisonExpression\" operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;name&quot;\"/>\r\n            <leftExpression xsi:type=\"patternExpressions:AttributeValueExpression\">\r\n              <attribute href=\"platform:/plugin/org.moflon.moca.MocaTree/model/MocaTree.ecore#//TreeElement/name\"/>\r\n            </leftExpression>\r\n          </constraintExpression>\r\n        </constraint>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsAppropriateRuleResult\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"match\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Match\"/>\r\n      </objectVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"parentNode\" target=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.1\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </linkVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"attribute\" target=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.2\" source=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.1\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      </linkVariable>\r\n      <correspondence href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      <source href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      <csp>\r\n        <constraints variables=\"//@ownedActivityNode.1/@storyPattern/@csp/@variables.0 //@ownedActivityNode.1/@storyPattern/@csp/@variables.1\" name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"csp:AttributeVariable\" type=\"String\" attribute=\"value\" objectVariable=\"nameAttr\"/>\r\n        <variables xsi:type=\"csp:AttributeVariable\" type=\"String\" attribute=\"name\" objectVariable=\"blipModel\"/>\r\n      </csp>\r\n      <target href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"set success\" outgoing=\"//@ownedActivityEdge.2\" incoming=\"//@ownedActivityEdge.3\">\r\n    <storyPattern>\r\n      <objectVariable name=\"match\" incomingLink=\"//@ownedActivityNode.2/@storyPattern/@linkVariable.0\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Match\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.2/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsAppropriateRuleResult\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//RuleResult/success\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"true\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <linkVariable name=\"matches\" target=\"//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.2/@storyPattern/@objectVariable.1\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StopNode\" incoming=\"//@ownedActivityEdge.2\">\r\n    <returnValue xsi:type=\"patternExpressions:ObjectVariableExpression\" object=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.2\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StartNode\" outgoing=\"//@ownedActivityEdge.0\"/>\r\n  <ownedActivityNode xsi:type=\"activities:StatementNode\" name=\"bookkeeping with generic isAppropriate method\" outgoing=\"//@ownedActivityEdge.5 //@ownedActivityEdge.6\" incoming=\"//@ownedActivityEdge.1\">\r\n    <statementExpression xsi:type=\"callExpressions:MethodCallExpression\">\r\n      <ownedParameterBindings>\r\n        <valueExpression xsi:type=\"expressions:TextualExpression\" expressionText=\"match\"/>\r\n        <parameter href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_FWD/match\"/>\r\n      </ownedParameterBindings>\r\n      <ownedParameterBindings>\r\n        <valueExpression xsi:type=\"expressions:TextualExpression\" expressionText=\"applicationNode\"/>\r\n        <parameter href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_FWD/applicationNode\"/>\r\n      </ownedParameterBindings>\r\n      <ownedParameterBindings>\r\n        <valueExpression xsi:type=\"expressions:TextualExpression\" expressionText=\"blipModelNode\"/>\r\n        <parameter href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_FWD/blipModelNode\"/>\r\n      </ownedParameterBindings>\r\n      <ownedParameterBindings>\r\n        <valueExpression xsi:type=\"expressions:TextualExpression\" expressionText=\"nameAttr\"/>\r\n        <parameter href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_FWD/nameAttr\"/>\r\n      </ownedParameterBindings>\r\n      <callee href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_FWD\"/>\r\n      <target xsi:type=\"patternExpressions:ObjectVariableExpression\" object=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.1\"/>\r\n    </statementExpression>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"Add match to rule result\" outgoing=\"//@ownedActivityEdge.7\" incoming=\"//@ownedActivityEdge.6\">\r\n    <storyPattern>\r\n      <objectVariable name=\"match\" incomingLink=\"//@ownedActivityNode.6/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Match\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.6/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsAppropriateRuleResult\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"matches\" target=\"//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.6/@storyPattern/@objectVariable.1\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.4\" target=\"//@ownedActivityNode.0\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.1\" target=\"//@ownedActivityNode.5\" guard=\"EACH_TIME\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.2\" target=\"//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.1\" target=\"//@ownedActivityNode.2\" guard=\"END\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.0\" target=\"//@ownedActivityNode.1\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.5\" target=\"//@ownedActivityNode.1\" guard=\"FAILURE\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.5\" target=\"//@ownedActivityNode.6\" guard=\"SUCCESS\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.6\" target=\"//@ownedActivityNode.1\"/>\r\n</activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      Object _TmpObject = null;\n      EClass eClass = null;\n      Iterator fujaba__IterEClassToPerformOperation = null;\n      EOperation performOperation = null;\n      IsAppropriateRuleResult ruleresult = null;\n      Match match = null;\n      Node applicationNode = null;\n      Node blipModelNode = null;\n      Iterator fujaba__IterRuleresultToMatch = null;\n\n      // story node \'prepare return value\'\n      try \n      {\n         fujaba__Success = false; \n\n         _TmpObject = (this.eClass());\n\n         // ensure correct type and really bound of object eClass\n         JavaSDM.ensure ( _TmpObject instanceof EClass );\n         eClass = (EClass) _TmpObject;\n         // iterate to-many link eOperations from eClass to performOperation\n         fujaba__Success = false;\n\n         fujaba__IterEClassToPerformOperation = eClass.getEOperations().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterEClassToPerformOperation.hasNext () )\n         {\n            try\n            {\n               performOperation = (EOperation) fujaba__IterEClassToPerformOperation.next ();\n\n               // check object performOperation is really bound\n               JavaSDM.ensure ( performOperation != null );\n               // attribute condition\n               JavaSDM.ensure ( JavaSDM.stringCompare (performOperation.getName (), \"isApplicable_FWD\") == 0 );\n\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // create object ruleresult\n         ruleresult = TGGRuntimeFactory.eINSTANCE.createIsAppropriateRuleResult();\n\n         // assign attribute ruleresult\n         ruleresult.setSuccess (false);\n\n         // create link\n         ruleresult.setPerformOperation( performOperation);\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story node \'test core match\'\n      try \n      {\n         fujaba__Success = false; \n\n         // check object nameAttr is really bound\n         JavaSDM.ensure ( nameAttr != null );\n         // check object ruleresult is really bound\n         JavaSDM.ensure ( ruleresult != null );\n         // bind object\n         blipModelNode = nameAttr.getNode ();\n\n         // check object blipModelNode is really bound\n         JavaSDM.ensure ( blipModelNode != null );\n\n         // bind object\n         applicationNode = blipModelNode.getParentNode ();\n\n         // check object applicationNode is really bound\n         JavaSDM.ensure ( applicationNode != null );\n\n         // check isomorphic binding between objects blipModelNode and applicationNode \n         JavaSDM.ensure ( !blipModelNode.equals (applicationNode) );\n\n         // attribute condition\n         JavaSDM.ensure ( JavaSDM.stringCompare (blipModelNode.getName (), \"Model\") == 0 );\n\n         // attribute condition\n         JavaSDM.ensure ( JavaSDM.stringCompare (nameAttr.getName (), \"name\") == 0 );\n\n         // create object match\n         match = TGGRuntimeFactory.eINSTANCE.createMatch();\n\n         // statement node \'bookkeeping with generic isAppropriate method\'\n         fujaba__Success = this.isAppropriate_FWD(match,applicationNode,blipModelNode,nameAttr);\n         if (fujaba__Success)\n         {\n            // story node \'Add match to rule result\'\n            try \n            {\n               fujaba__Success = false; \n\n               // check object match is really bound\n               JavaSDM.ensure ( match != null );\n               // check object ruleresult is really bound\n               JavaSDM.ensure ( ruleresult != null );\n\n               // create link\n               ruleresult.getMatches().add(match);\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n\n\n         }\n         else\n         {\n\n         }\n\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story node \'set success\'\n      try \n      {\n         fujaba__Success = false; \n\n         // check object ruleresult is really bound\n         JavaSDM.ensure ( ruleresult != null );\n         // iterate to-many link matches from ruleresult to match\n         fujaba__Success = false;\n\n         fujaba__IterRuleresultToMatch = ruleresult.getMatches().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterRuleresultToMatch.hasNext () )\n         {\n            try\n            {\n               match = (Match) fujaba__IterRuleresultToMatch.next ();\n\n               // check object match is really bound\n               JavaSDM.ensure ( match != null );\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // assign attribute ruleresult\n         ruleresult.setSuccess (true);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      return ruleresult;'"
	 * @generated
	 */
	IsAppropriateRuleResult isAppropriate_FWD_Attribute_5(Attribute nameAttr);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<activities:Activity xmi:version=\"2.0\" xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:TGGLanguage=\"http://www.moflon.org.TGGLanguage\" xmlns:activities=\"http://www.moflon.org.SDMLanguage.activities\" xmlns:callExpressions=\"http://www.moflon.org.SDMLanguage.calls.callExpressions\" xmlns:csp=\"http://www.moflon.org.TGGLanguage.csp\" xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\" xmlns:expressions=\"http://www.moflon.org.SDMLanguage.expressions\" xmlns:patternExpressions=\"http://www.moflon.org.SDMLanguage.patterns.patternExpressions\">\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"prepare return value\" outgoing=\"//@ownedActivityEdge.4\" incoming=\"//@ownedActivityEdge.0\">\r\n    <storyPattern>\r\n      <objectVariable name=\"performOperation\" incomingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.1 //@ownedActivityNode.0/@storyPattern/@linkVariable.0\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EOperation\"/>\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"expressions:ComparisonExpression\" operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;isApplicable_BWD&quot;\"/>\r\n            <leftExpression xsi:type=\"patternExpressions:AttributeValueExpression\" object=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\">\r\n              <attribute href=\"http://www.eclipse.org/emf/2002/Ecore#//ENamedElement/name\"/>\r\n            </leftExpression>\r\n          </constraintExpression>\r\n        </constraint>\r\n      </objectVariable>\r\n      <objectVariable name=\"this\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.0\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsAppropriateRuleResult\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//RuleResult/success\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"false\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable name=\"eClass\" outgoingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.1\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EClass\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"this.eClass()\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"performOperation\" target=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"eOperations\" target=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.3\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"test core match\" outgoing=\"//@ownedActivityEdge.3 //@ownedActivityEdge.1\" incoming=\"//@ownedActivityEdge.4 //@ownedActivityEdge.5 //@ownedActivityEdge.7\" forEach=\"true\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"MModelToModelRule\" cspSpec=\"&#xD;&#xA;&#x9;&#x9;eq(nameAttr.value, blipModel.name)&#xD;&#xA;&#x9;\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"application\" outgoingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/resource/BlipLanguage/model/BlipLanguage.ecore#//BlipApplication\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"blipModel\" incomingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.0\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/resource/BlipLanguage/model/BlipLanguage.ecore#//BlipModel\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsAppropriateRuleResult\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"match\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Match\"/>\r\n      </objectVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"models\" target=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.1\" source=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.0\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n      </linkVariable>\r\n      <correspondence href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      <source href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      <csp>\r\n        <constraints variables=\"//@ownedActivityNode.1/@storyPattern/@csp/@variables.0 //@ownedActivityNode.1/@storyPattern/@csp/@variables.1\" name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"csp:AttributeVariable\" type=\"String\" attribute=\"value\" objectVariable=\"nameAttr\"/>\r\n        <variables xsi:type=\"csp:AttributeVariable\" type=\"String\" attribute=\"name\" objectVariable=\"blipModel\"/>\r\n      </csp>\r\n      <target href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"set success\" outgoing=\"//@ownedActivityEdge.2\" incoming=\"//@ownedActivityEdge.3\">\r\n    <storyPattern>\r\n      <objectVariable name=\"match\" incomingLink=\"//@ownedActivityNode.2/@storyPattern/@linkVariable.0\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Match\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.2/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsAppropriateRuleResult\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//RuleResult/success\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"true\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <linkVariable name=\"matches\" target=\"//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.2/@storyPattern/@objectVariable.1\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StopNode\" incoming=\"//@ownedActivityEdge.2\">\r\n    <returnValue xsi:type=\"patternExpressions:ObjectVariableExpression\" object=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.2\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StartNode\" outgoing=\"//@ownedActivityEdge.0\"/>\r\n  <ownedActivityNode xsi:type=\"activities:StatementNode\" name=\"bookkeeping with generic isAppropriate method\" outgoing=\"//@ownedActivityEdge.5 //@ownedActivityEdge.6\" incoming=\"//@ownedActivityEdge.1\">\r\n    <statementExpression xsi:type=\"callExpressions:MethodCallExpression\">\r\n      <ownedParameterBindings>\r\n        <valueExpression xsi:type=\"expressions:TextualExpression\" expressionText=\"match\"/>\r\n        <parameter href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_BWD/match\"/>\r\n      </ownedParameterBindings>\r\n      <ownedParameterBindings>\r\n        <valueExpression xsi:type=\"expressions:TextualExpression\" expressionText=\"application\"/>\r\n        <parameter href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_BWD/application\"/>\r\n      </ownedParameterBindings>\r\n      <ownedParameterBindings>\r\n        <valueExpression xsi:type=\"expressions:TextualExpression\" expressionText=\"blipModel\"/>\r\n        <parameter href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_BWD/blipModel\"/>\r\n      </ownedParameterBindings>\r\n      <callee href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_BWD\"/>\r\n      <target xsi:type=\"patternExpressions:ObjectVariableExpression\" object=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.1\"/>\r\n    </statementExpression>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"Add match to rule result\" outgoing=\"//@ownedActivityEdge.7\" incoming=\"//@ownedActivityEdge.6\">\r\n    <storyPattern>\r\n      <objectVariable name=\"match\" incomingLink=\"//@ownedActivityNode.6/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Match\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.6/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsAppropriateRuleResult\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"matches\" target=\"//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.6/@storyPattern/@objectVariable.1\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.4\" target=\"//@ownedActivityNode.0\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.1\" target=\"//@ownedActivityNode.5\" guard=\"EACH_TIME\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.2\" target=\"//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.1\" target=\"//@ownedActivityNode.2\" guard=\"END\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.0\" target=\"//@ownedActivityNode.1\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.5\" target=\"//@ownedActivityNode.1\" guard=\"FAILURE\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.5\" target=\"//@ownedActivityNode.6\" guard=\"SUCCESS\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.6\" target=\"//@ownedActivityNode.1\"/>\r\n</activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      Object _TmpObject = null;\n      EClass eClass = null;\n      Iterator fujaba__IterEClassToPerformOperation = null;\n      EOperation performOperation = null;\n      IsAppropriateRuleResult ruleresult = null;\n      Match match = null;\n      Iterator fujaba__IterApplicationToBlipModel = null;\n      BlipModel blipModel = null;\n      Iterator fujaba__IterRuleresultToMatch = null;\n\n      // story node \'prepare return value\'\n      try \n      {\n         fujaba__Success = false; \n\n         _TmpObject = (this.eClass());\n\n         // ensure correct type and really bound of object eClass\n         JavaSDM.ensure ( _TmpObject instanceof EClass );\n         eClass = (EClass) _TmpObject;\n         // iterate to-many link eOperations from eClass to performOperation\n         fujaba__Success = false;\n\n         fujaba__IterEClassToPerformOperation = eClass.getEOperations().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterEClassToPerformOperation.hasNext () )\n         {\n            try\n            {\n               performOperation = (EOperation) fujaba__IterEClassToPerformOperation.next ();\n\n               // check object performOperation is really bound\n               JavaSDM.ensure ( performOperation != null );\n               // attribute condition\n               JavaSDM.ensure ( JavaSDM.stringCompare (performOperation.getName (), \"isApplicable_BWD\") == 0 );\n\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // create object ruleresult\n         ruleresult = TGGRuntimeFactory.eINSTANCE.createIsAppropriateRuleResult();\n\n         // assign attribute ruleresult\n         ruleresult.setSuccess (false);\n\n         // create link\n         ruleresult.setPerformOperation( performOperation);\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story node \'test core match\'\n      try \n      {\n         fujaba__Success = false; \n\n         // check object application is really bound\n         JavaSDM.ensure ( application != null );\n         // check object ruleresult is really bound\n         JavaSDM.ensure ( ruleresult != null );\n         // iterate to-many link models from application to blipModel\n         fujaba__Success = false;\n\n         fujaba__IterApplicationToBlipModel = new ArrayList(application.getModels()).iterator ();\n\n         while ( fujaba__IterApplicationToBlipModel.hasNext () )\n         {\n            try\n            {\n               blipModel = (BlipModel) fujaba__IterApplicationToBlipModel.next ();\n\n               // check object blipModel is really bound\n               JavaSDM.ensure ( blipModel != null );\n               // create object match\n               match = TGGRuntimeFactory.eINSTANCE.createMatch();\n\n               // statement node \'bookkeeping with generic isAppropriate method\'\n               fujaba__Success = this.isAppropriate_BWD(match,application,blipModel);\n               if (fujaba__Success)\n               {\n                  // story node \'Add match to rule result\'\n                  try \n                  {\n                     fujaba__Success = false; \n\n                     // check object match is really bound\n                     JavaSDM.ensure ( match != null );\n                     // check object ruleresult is really bound\n                     JavaSDM.ensure ( ruleresult != null );\n\n                     // create link\n                     ruleresult.getMatches().add(match);\n\n                     fujaba__Success = true;\n                  }\n                  catch ( JavaSDMException fujaba__InternalException )\n                  {\n                     fujaba__Success = false;\n                  }\n\n\n               }\n               else\n               {\n\n               }\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story node \'set success\'\n      try \n      {\n         fujaba__Success = false; \n\n         // check object ruleresult is really bound\n         JavaSDM.ensure ( ruleresult != null );\n         // iterate to-many link matches from ruleresult to match\n         fujaba__Success = false;\n\n         fujaba__IterRuleresultToMatch = ruleresult.getMatches().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterRuleresultToMatch.hasNext () )\n         {\n            try\n            {\n               match = (Match) fujaba__IterRuleresultToMatch.next ();\n\n               // check object match is really bound\n               JavaSDM.ensure ( match != null );\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // assign attribute ruleresult\n         ruleresult.setSuccess (true);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      return ruleresult;'"
	 * @generated
	 */
	IsAppropriateRuleResult isAppropriate_BWD_BlipApplication_1(
			BlipApplication application);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<activities:Activity xmi:version=\"2.0\" xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:TGGLanguage=\"http://www.moflon.org.TGGLanguage\" xmlns:activities=\"http://www.moflon.org.SDMLanguage.activities\" xmlns:callExpressions=\"http://www.moflon.org.SDMLanguage.calls.callExpressions\" xmlns:csp=\"http://www.moflon.org.TGGLanguage.csp\" xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\" xmlns:expressions=\"http://www.moflon.org.SDMLanguage.expressions\" xmlns:patternExpressions=\"http://www.moflon.org.SDMLanguage.patterns.patternExpressions\">\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"prepare return value\" outgoing=\"//@ownedActivityEdge.4\" incoming=\"//@ownedActivityEdge.0\">\r\n    <storyPattern>\r\n      <objectVariable name=\"performOperation\" incomingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.1 //@ownedActivityNode.0/@storyPattern/@linkVariable.0\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EOperation\"/>\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"expressions:ComparisonExpression\" operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"expressions:LiteralExpression\" value=\"&quot;isApplicable_BWD&quot;\"/>\r\n            <leftExpression xsi:type=\"patternExpressions:AttributeValueExpression\" object=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\">\r\n              <attribute href=\"http://www.eclipse.org/emf/2002/Ecore#//ENamedElement/name\"/>\r\n            </leftExpression>\r\n          </constraintExpression>\r\n        </constraint>\r\n      </objectVariable>\r\n      <objectVariable name=\"this\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.0\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsAppropriateRuleResult\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//RuleResult/success\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"false\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable name=\"eClass\" outgoingLink=\"//@ownedActivityNode.0/@storyPattern/@linkVariable.1\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.eclipse.org/emf/2002/Ecore#//EClass\"/>\r\n        <bindingExpression xsi:type=\"expressions:LiteralExpression\" value=\"this.eClass()\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"performOperation\" target=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"eOperations\" target=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.3\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"test core match\" outgoing=\"//@ownedActivityEdge.3 //@ownedActivityEdge.1\" incoming=\"//@ownedActivityEdge.4 //@ownedActivityEdge.5 //@ownedActivityEdge.7\" forEach=\"true\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"MModelToModelRule\" cspSpec=\"&#xD;&#xA;&#x9;&#x9;eq(nameAttr.value, blipModel.name)&#xD;&#xA;&#x9;\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"application\" outgoingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.0\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/resource/BlipLanguage/model/BlipLanguage.ecore#//BlipApplication\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" name=\"blipModel\" incomingLink=\"//@ownedActivityNode.1/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"platform:/resource/BlipLanguage/model/BlipLanguage.ecore#//BlipModel\"/>\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsAppropriateRuleResult\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"match\" bindingOperator=\"CREATE\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Match\"/>\r\n      </objectVariable>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"models\" target=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.1\" source=\"//@ownedActivityNode.1/@storyPattern/@objectVariable.0\">\r\n        <domain href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n      </linkVariable>\r\n      <correspondence href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.2\"/>\r\n      <source href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.0\"/>\r\n      <csp>\r\n        <constraints variables=\"//@ownedActivityNode.1/@storyPattern/@csp/@variables.0 //@ownedActivityNode.1/@storyPattern/@csp/@variables.1\" name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"csp:AttributeVariable\" type=\"String\" attribute=\"value\" objectVariable=\"nameAttr\"/>\r\n        <variables xsi:type=\"csp:AttributeVariable\" type=\"String\" attribute=\"name\" objectVariable=\"blipModel\"/>\r\n      </csp>\r\n      <target href=\"platform:/resource/BlipTGG/model/BlipTGG.tgg.xmi#//@domain.1\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"set success\" outgoing=\"//@ownedActivityEdge.2\" incoming=\"//@ownedActivityEdge.3\">\r\n    <storyPattern>\r\n      <objectVariable name=\"match\" incomingLink=\"//@ownedActivityNode.2/@storyPattern/@linkVariable.0\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Match\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.2/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsAppropriateRuleResult\"/>\r\n        <attributeAssignment>\r\n          <attribute href=\"http://www.moflon.org.TGGRuntime#//RuleResult/success\"/>\r\n          <valueExpression xsi:type=\"expressions:LiteralExpression\" value=\"true\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <linkVariable name=\"matches\" target=\"//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.2/@storyPattern/@objectVariable.1\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StopNode\" incoming=\"//@ownedActivityEdge.2\">\r\n    <returnValue xsi:type=\"patternExpressions:ObjectVariableExpression\" object=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.2\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StartNode\" outgoing=\"//@ownedActivityEdge.0\"/>\r\n  <ownedActivityNode xsi:type=\"activities:StatementNode\" name=\"bookkeeping with generic isAppropriate method\" outgoing=\"//@ownedActivityEdge.5 //@ownedActivityEdge.6\" incoming=\"//@ownedActivityEdge.1\">\r\n    <statementExpression xsi:type=\"callExpressions:MethodCallExpression\">\r\n      <ownedParameterBindings>\r\n        <valueExpression xsi:type=\"expressions:TextualExpression\" expressionText=\"match\"/>\r\n        <parameter href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_BWD/match\"/>\r\n      </ownedParameterBindings>\r\n      <ownedParameterBindings>\r\n        <valueExpression xsi:type=\"expressions:TextualExpression\" expressionText=\"application\"/>\r\n        <parameter href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_BWD/application\"/>\r\n      </ownedParameterBindings>\r\n      <ownedParameterBindings>\r\n        <valueExpression xsi:type=\"expressions:TextualExpression\" expressionText=\"blipModel\"/>\r\n        <parameter href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_BWD/blipModel\"/>\r\n      </ownedParameterBindings>\r\n      <callee href=\"http://www.moflon.org.BlipTGG#//Rules/MModelToModelRule/isAppropriate_BWD\"/>\r\n      <target xsi:type=\"patternExpressions:ObjectVariableExpression\" object=\"//@ownedActivityNode.0/@storyPattern/@objectVariable.1\"/>\r\n    </statementExpression>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"activities:StoryNode\" name=\"Add match to rule result\" outgoing=\"//@ownedActivityEdge.7\" incoming=\"//@ownedActivityEdge.6\">\r\n    <storyPattern>\r\n      <objectVariable name=\"match\" incomingLink=\"//@ownedActivityNode.6/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//Match\"/>\r\n      </objectVariable>\r\n      <objectVariable name=\"ruleresult\" outgoingLink=\"//@ownedActivityNode.6/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\">\r\n        <type xsi:type=\"ecore:EClass\" href=\"http://www.moflon.org.TGGRuntime#//IsAppropriateRuleResult\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"matches\" target=\"//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" source=\"//@ownedActivityNode.6/@storyPattern/@objectVariable.1\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.4\" target=\"//@ownedActivityNode.0\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.1\" target=\"//@ownedActivityNode.5\" guard=\"EACH_TIME\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.2\" target=\"//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.1\" target=\"//@ownedActivityNode.2\" guard=\"END\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.0\" target=\"//@ownedActivityNode.1\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.5\" target=\"//@ownedActivityNode.1\" guard=\"FAILURE\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.5\" target=\"//@ownedActivityNode.6\" guard=\"SUCCESS\"/>\r\n  <ownedActivityEdge source=\"//@ownedActivityNode.6\" target=\"//@ownedActivityNode.1\"/>\r\n</activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      Object _TmpObject = null;\n      EClass eClass = null;\n      Iterator fujaba__IterEClassToPerformOperation = null;\n      EOperation performOperation = null;\n      IsAppropriateRuleResult ruleresult = null;\n      Match match = null;\n      BlipApplication application = null;\n      Iterator fujaba__IterRuleresultToMatch = null;\n\n      // story node \'prepare return value\'\n      try \n      {\n         fujaba__Success = false; \n\n         _TmpObject = (this.eClass());\n\n         // ensure correct type and really bound of object eClass\n         JavaSDM.ensure ( _TmpObject instanceof EClass );\n         eClass = (EClass) _TmpObject;\n         // iterate to-many link eOperations from eClass to performOperation\n         fujaba__Success = false;\n\n         fujaba__IterEClassToPerformOperation = eClass.getEOperations().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterEClassToPerformOperation.hasNext () )\n         {\n            try\n            {\n               performOperation = (EOperation) fujaba__IterEClassToPerformOperation.next ();\n\n               // check object performOperation is really bound\n               JavaSDM.ensure ( performOperation != null );\n               // attribute condition\n               JavaSDM.ensure ( JavaSDM.stringCompare (performOperation.getName (), \"isApplicable_BWD\") == 0 );\n\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // create object ruleresult\n         ruleresult = TGGRuntimeFactory.eINSTANCE.createIsAppropriateRuleResult();\n\n         // assign attribute ruleresult\n         ruleresult.setSuccess (false);\n\n         // create link\n         ruleresult.setPerformOperation( performOperation);\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story node \'test core match\'\n      try \n      {\n         fujaba__Success = false; \n\n         // check object blipModel is really bound\n         JavaSDM.ensure ( blipModel != null );\n         // check object ruleresult is really bound\n         JavaSDM.ensure ( ruleresult != null );\n         // bind object\n         application = blipModel.eContainer() instanceof BlipApplication ? (BlipApplication) blipModel.eContainer() : null;\n\n         // check object application is really bound\n         JavaSDM.ensure ( application != null );\n\n         // check if contained via correct reference\n         JavaSDM.ensure(application.getModels().contains(blipModel));\n\n         // create object match\n         match = TGGRuntimeFactory.eINSTANCE.createMatch();\n\n         // statement node \'bookkeeping with generic isAppropriate method\'\n         fujaba__Success = this.isAppropriate_BWD(match,application,blipModel);\n         if (fujaba__Success)\n         {\n            // story node \'Add match to rule result\'\n            try \n            {\n               fujaba__Success = false; \n\n               // check object match is really bound\n               JavaSDM.ensure ( match != null );\n               // check object ruleresult is really bound\n               JavaSDM.ensure ( ruleresult != null );\n\n               // create link\n               ruleresult.getMatches().add(match);\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n\n\n         }\n         else\n         {\n\n         }\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story node \'set success\'\n      try \n      {\n         fujaba__Success = false; \n\n         // check object ruleresult is really bound\n         JavaSDM.ensure ( ruleresult != null );\n         // iterate to-many link matches from ruleresult to match\n         fujaba__Success = false;\n\n         fujaba__IterRuleresultToMatch = ruleresult.getMatches().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterRuleresultToMatch.hasNext () )\n         {\n            try\n            {\n               match = (Match) fujaba__IterRuleresultToMatch.next ();\n\n               // check object match is really bound\n               JavaSDM.ensure ( match != null );\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // assign attribute ruleresult\n         ruleresult.setSuccess (true);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      return ruleresult;'"
	 * @generated
	 */
	IsAppropriateRuleResult isAppropriate_BWD_BlipModel_1(BlipModel blipModel);

} // MModelToModelRule
